def __init__(self): self.notebook = NoteBook() self.choices = {1:self.add_notes, 2:self.modify_notes_tags, 3:self.append_notes_tags, 4:self.search_notes, 5:self.display_notes, 6:self.quit}
def __init__(self): self.notebook = NoteBook() self.choices = { '1': self.show_notes, '2': self.search_notes, '3': self.add_notes, '4': self.modify_note, '5': self.quit }
def __init__(self): self.notebook = NoteBook() self.choices = { "1" : self.show_notes, "2" : self.search_notes, "3" : self.add_note, "4" : self.modify_note, "5" : self.quit }
def __init__(self): self.one_close = app_theme.get_pixbuf("treeview/1-close.png") self.one_open = app_theme.get_pixbuf("treeview/1-open.png") self.two_close = app_theme.get_pixbuf("treeview/2-close.png") self.two_open = app_theme.get_pixbuf("treeview/2-open.png") self.three_close = app_theme.get_pixbuf("treeview/3-close.png") self.three_open = app_theme.get_pixbuf("treeview/3-open.png") # self.tree_view_open = app_theme.get_pixbuf("treeview/open.png") self.tree_view_close = app_theme.get_pixbuf("treeview/close.png") self.tree_view_right = app_theme.get_pixbuf("treeview/right.png") self.tree_view_bottom = app_theme.get_pixbuf("treeview/bottom.png") # self.listview_color = ui_theme.get_color("scrolledbar") self.play_list_vbox = gtk.VBox() # self.list_view_vbox = gtk.VBox() self.list_scroll_win = ScrolledWindow(0, 0) self.list_scroll_win.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS) self.list_view = ListView() # self.play_list_con = PlayListControl() # self.list_view_vbox.pack_start(self.list_scroll_win, True, True) self.list_view_vbox.pack_start(self.play_list_con, False, False) # 网络列表,搜索框. self.tree_scroll_win = ScrolledWindow(0, 0) self.tree_scroll_win.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS) self.tree_view_vbox = gtk.VBox() self.tree_view = TreeViewBase() self.search_ali = gtk.Alignment(0, 0, 1, 1) self.search = Search() self.search_ali.add(self.search) # self.search_ali.set_padding(7, 5, 12, 12) self.tree_view_vbox.pack_start(self.search_ali, False, False) self.tree_view_vbox.pack_start(self.tree_scroll_win, True, True) self.search_ali.connect("expose-event", self.search_ali_expose_event) # self.note_book = NoteBook() # self.list_view.on_draw_sub_item = self.__listview_on_draw_sub_item self.list_view.columns.add_range(["filename", "time"]) self.list_view.columns[0].width = 120 self.list_view.columns[1].width = 95 # self.note_book.hide_title() self.tree_view.paint_nodes_event = self.__treeview_paint_nodes_event # self.list_scroll_win.add_with_viewport(self.list_view) self.tree_scroll_win.add_with_viewport(self.tree_view) #self.note_book.add_layout1(self.list_scroll_win) self.note_book.add_layout1(self.list_view_vbox) self.note_book.add_layout2(self.tree_view_vbox) #self.play_list_vbox.pack_start(self.scroll_win, True, True) self.play_list_vbox.pack_start(self.note_book, True, True)
def get_notebook(owner_nickname, notebook_access, notebook_name, notebook_version): """ Returns the notebook. """ content = "" #content of the book # calculate the key to retrieve content from db #import pdb; pdb.set_trace() key_name=owner_nickname+"/"+notebook_access+"/"+notebook_name #import pdb; pdb.set_trace() # if version is not specified return the latest one from NoteBook if notebook_version == "" or notebook_version is None: key = db.Key.from_path("NoteBook", key_name) else: # return the required version from NoteBookVersion # Add version to the key to retrieve a saved version key = db.Key.from_path("NoteBookVersion", key_name+"/"+str(notebook_version) ) if not key: return None notebook = NoteBook.get( key ) # get the notebook. if notebook: # if notebook is found return notebook # return it. else: return NoteBookVersion.get( key )
def __init__(self): self.tree_view_open = app_theme.get_pixbuf("treeview/open.png") self.tree_view_close = app_theme.get_pixbuf("treeview/close.png") self.tree_view_right = app_theme.get_pixbuf("treeview/right.png") self.tree_view_bottom = app_theme.get_pixbuf("treeview/bottom.png") # self.listview_color = ui_theme.get_color("scrolledbar") self.play_list_vbox = gtk.VBox() # self.list_scroll_win = ScrolledWindow(0, 0) self.list_scroll_win.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS) self.list_view = ListView() # self.tree_scroll_win = ScrolledWindow(0, 0) self.tree_scroll_win.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS) self.tree_view = TreeViewBase() self.note_book = NoteBook() # self.list_view.on_draw_sub_item = self.__listview_on_draw_sub_item self.list_view.columns.add_range(["filename", "time"]) self.list_view.columns[0].width = 120 self.list_view.columns[1].width = 95 # self.note_book.hide_title() self.tree_view.paint_nodes_event = self.__treeview_paint_nodes_event # self.list_scroll_win.add_with_viewport(self.list_view) self.tree_scroll_win.add_with_viewport(self.tree_view) self.note_book.add_layout1(self.list_scroll_win) self.note_book.add_layout2(self.tree_scroll_win) #self.play_list_vbox.pack_start(self.scroll_win, True, True) self.play_list_vbox.pack_start(self.note_book, True, True)
class Menu: def __init__(self): self.notebook = NoteBook() self.choices = { "1": self.show_notes, "2": self.search_notes, "3": self.add_note, "4": self.modify_note, "5": self.quit } def display_menu(self): print(""" Notebook Menu 1. Show all Notes 2. Search Notes 3. Add Note 4. Modify Note 5. Quit """) def run(self): while true: self.display_menu() choice = input("Enter an option:") action = self.choices.get(str(choice)) if action: action() else: print("{0} is not a valid choice".format(choice)) def show_notes(self, notes=None): if not notes: notes = self.notebook.notes for note in notes: print("{0}: {1}\n{2}".format(note.id, note.tags, note.memo)) def search_notes(self): ifilter = raw_input("Search for:") notes = self.notebook.search(ifilter) self.show_notes(notes) def add_note(self): memo = raw_input("Enter a memo:") print(memo) self.notebook.new_note(memo) print("Your note has been added.") def modify_note(self): note_id = raw_input("Enter a note id:") memo = raw_input("Enter a memo:") tags = raw_input("Enter tags:") if memo: self.notebook.modify_memo(note_id, memo) if tags: self.notebook.modify_tags(note_id, tags) def quit(self): sys.exit(0)
def __init__(self): self.notebook = NoteBook() self.choices = { "1":self.show_notes, "2":self.search_notes, "3":self.add_note, "4":self.modify_note, "5":self.quit }
class Menu: '''Display a menu and respond to choices when run''' def __init__(self): self.notebook = NoteBook() self.choices = { "1" : self.show_notes, "2" : self.search_notes, "3" : self.add_note, "4" : self.modify_note, "5" : self.quit } def display_menu(self): print(""" Notebook Menu 1. Show all Notes 2. Search Notes 3. Add Note 4. Modify Note 5. Quit """) def run(self): """Display the menu and respond to choices""" while True: self.display_menu() choice = input("Enter an option: ") action = self.choices.get(choice) if action: action() else: print("{0} is not a valid choice", format(choice)) def show_notes(self, notes=None): if not notes: notes = self.notebook.notes for note in notes: print("{0}: {1}\n {2}". format(note.id, note.tags, note.memo)) def search_notes(self): filter = input("Search for: ") notes = self.notebook.search(filter) self.show_notes(notes) def add_note(self): memo = input("Enter a memo: ") self.notebook.new_note(memo) print("Your note has been added") def modify_note(self): if = input("Enter a note id: ") memo = input("Enter a memo; ") tags = input("Enter tags: ") if memo: self.notebook.modify_memo(id, memo) if tags: self.notebook.modify_tags(id, tags) def quit(self): print("Thank you for using your notebook today") sys.exit(0) if __name__ == '__main__': Menu().run()
class Memu(object): def __init__(self): self.notebook = NoteBook() self.choices = { "1":self.show_notes, "2":self.search_notes, "3":self.add_note, "4":self.modify_note, "5":self.quit } def display_memu(self): print (""" Notebook Menu 1.Show all Notes 2.Search Notes 3.Add Note 4.Modify Note 5.Quit """) def run(self): while True: self.display_memu() choice = raw_input("Enter an option:") action = self.choices.get(choice) if action: action() else: print "{0} is not a valid choice".format(choice) def show_notes(self,notes = None): if not notes: notes = self.notebook.notes for note in notes: print ("{0}:{1}\n{2}".format(note.id,note.tags,note.memo)) def search_notes(self): filter = raw_input("Search for:") notes = self.notebook.search(filter) self.show_notes(notes) def add_note(self): memo = raw_input("Enter a memo:") self.notebook.new_note(memo) print "Your note has been added." def modify_note(self): id = raw_input("Enter a note id:") memo = raw_input("Enter a memo:") tags = raw_input("Enter tags:") if memo: self.notebook.modify_note(id,memo) if tags: self.notebook.modify_tags(id,tags) def quit(self): print "Thank you for using your notebook today." sys.exit(0)
def __init__(self, ifarduino, address = "/dev/cu.usbmodem142101"): self._tickes = 0 self._hit = False self._hit_count = 0 self._hit_begin = 0 self._hitRecord = [] self._channel = Channel() self._notebook = NoteBook() self._player1 = Player("tempo",self._notebook) self._player2 = Player("chord",self._notebook) self._player3 = Player("melody",self._notebook) self.quit = False self._Arduino = ifarduino #self._Arduino = True if self._Arduino: self._serialPort = address self._baudRate = 9600 self._server = serial.Serial(self._serialPort, self._baudRate, timeout=1)
def createTODO(directory): # get files allFiles = [f for f in listdir(directory) if isfile(join(directory, f))] todoFiles = [f for f in allFiles if f[0] != "."] # print(todoFiles) # create notebook nb = NoteBook() nb.setTitle("TODO") # nb.inbox.print(msg) # nb.tasklist.print(msg) for todof in todoFiles: n = readNoteFile(directory + "/" + todof) #print("adding note {}".format(todof)) nb.addNote(n) # finally, create task list based on todo projects nb.tasklist.createTasks(nb.notes) return nb
class PlayListView(object): def __init__(self): self.tree_view_open = app_theme.get_pixbuf("treeview/open.png") self.tree_view_close = app_theme.get_pixbuf("treeview/close.png") self.tree_view_right = app_theme.get_pixbuf("treeview/right.png") self.tree_view_bottom = app_theme.get_pixbuf("treeview/bottom.png") # self.listview_color = ui_theme.get_color("scrolledbar") self.play_list_vbox = gtk.VBox() # self.list_scroll_win = ScrolledWindow(0, 0) self.list_scroll_win.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS) self.list_view = ListView() # self.tree_scroll_win = ScrolledWindow(0, 0) self.tree_scroll_win.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS) self.tree_view = TreeViewBase() self.note_book = NoteBook() # self.list_view.on_draw_sub_item = self.__listview_on_draw_sub_item self.list_view.columns.add_range(["filename", "time"]) self.list_view.columns[0].width = 120 self.list_view.columns[1].width = 95 # self.note_book.hide_title() self.tree_view.paint_nodes_event = self.__treeview_paint_nodes_event # self.list_scroll_win.add_with_viewport(self.list_view) self.tree_scroll_win.add_with_viewport(self.tree_view) self.note_book.add_layout1(self.list_scroll_win) self.note_book.add_layout2(self.tree_scroll_win) #self.play_list_vbox.pack_start(self.scroll_win, True, True) self.play_list_vbox.pack_start(self.note_book, True, True) def __listview_on_draw_sub_item(self, e): color = self.listview_color.get_color() if e.double_items == e.item: e.text_color = "#000000" text_size=9 color_info = [(0, (color, 0.8)), (1, (color, 0.8))] draw_vlinear(e.cr, e.x, e.y, e.w, e.h, color_info ) elif e.item in e.single_items: e.text_color = "#FFFFFF" text_size=9 color_info = [(0, (color, 0.5)), (1, (color, 0.5))] draw_vlinear(e.cr, e.x, e.y, e.w, e.h, color_info ) elif e.motion_items == e.item: e.text_color = "#FFFFFF" text_size=9 color_info = [(0, (color, 0.2)), (1, (color, 0.2))] draw_vlinear(e.cr, e.x, e.y, e.w, e.h, color_info ) else: e.text_color = "#FFFFFF" text_size=9 text = e.text.decode("utf-8") one_width = self.list_view.columns[0].width two_width = self.list_view.columns[1].width if e.w == one_width: # 显示播放名字的第一列. # t_width = 0 t_index = 0 add_point = False for t in text: t_width += get_text_size(t, text_size=text_size)[0] if t_width > one_width: add_point = True break t_index += 1 if add_point: text = text[:t_index] + "..." # alignment = Text.LEFT x = e.x + 15 elif e.w == two_width: alignment = Text.RIGHT x = e.x - 15 e.draw_text(e.cr, str(text), x, e.y, e.w, e.h, text_color=e.text_color, text_size=text_size, alignment=alignment) def __treeview_paint_nodes_event(self, node_event): leave_width = 20 color = self.listview_color.get_color() text_color = "#FFFFFF" # if node_event.node in node_event.single_items: color_info = [(0, (color, 0.45)), (1, (color, 0.45))] draw_vlinear(node_event.cr, node_event.x, node_event.y, node_event.w, node_event.h, color_info ) text_color = "#000000" elif node_event.node in node_event.motion_items: color_info = [(0, (color, 0.75)), (1, (color, 0.75))] draw_vlinear(node_event.cr, node_event.x, node_event.y, node_event.w, node_event.h, color_info ) # if node_event.node.leave == 1: # 根节点. x = node_event.x + 20 # 画root的图标. if node_event.node.is_expanded: pixbuf = self.tree_view_close.get_pixbuf() else: pixbuf = self.tree_view_open.get_pixbuf() # node_event.x + 5 是图标与文字之间的宽度. draw_pixbuf(node_event.cr, pixbuf, node_event.x + 5, node_event.y + node_event.h/2 - pixbuf.get_height()/2 ) else: #x_padding = node_event.node.leave * leave_width #x = node_event.x + 18 + x_padding x = node_event.x + 20 # if node_event.node.is_expanded: pixbuf = self.tree_view_bottom.get_pixbuf() else: pixbuf = self.tree_view_right.get_pixbuf() icon_x = node_event.x + pixbuf.get_width()/2 icon_y = node_event.y + node_event.h/2 - pixbuf.get_height()/2 if node_event.node.nodes or node_event.node.leave == 2: draw_pixbuf(node_event.cr, pixbuf, icon_x, icon_y) # draw_text(node_event.cr, node_event.node.text, x + 5, node_event.y + node_event.h/2 - get_text_size(node_event.node.text, text_size=9)[1]/2, text_color=text_color, text_size=9 )
class PlayListView(object): def __init__(self): self.one_close = app_theme.get_pixbuf("treeview/1-close.png") self.one_open = app_theme.get_pixbuf("treeview/1-open.png") self.two_close = app_theme.get_pixbuf("treeview/2-close.png") self.two_open = app_theme.get_pixbuf("treeview/2-open.png") self.three_close = app_theme.get_pixbuf("treeview/3-close.png") self.three_open = app_theme.get_pixbuf("treeview/3-open.png") # self.tree_view_open = app_theme.get_pixbuf("treeview/open.png") self.tree_view_close = app_theme.get_pixbuf("treeview/close.png") self.tree_view_right = app_theme.get_pixbuf("treeview/right.png") self.tree_view_bottom = app_theme.get_pixbuf("treeview/bottom.png") # self.listview_color = ui_theme.get_color("scrolledbar") self.play_list_vbox = gtk.VBox() # self.list_view_vbox = gtk.VBox() self.list_scroll_win = ScrolledWindow(0, 0) self.list_scroll_win.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS) self.list_view = ListView() # self.play_list_con = PlayListControl() # self.list_view_vbox.pack_start(self.list_scroll_win, True, True) self.list_view_vbox.pack_start(self.play_list_con, False, False) # 网络列表,搜索框. self.tree_scroll_win = ScrolledWindow(0, 0) self.tree_scroll_win.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS) self.tree_view_vbox = gtk.VBox() self.tree_view = TreeViewBase() self.search_ali = gtk.Alignment(0, 0, 1, 1) self.search = Search() self.search_ali.add(self.search) # self.search_ali.set_padding(7, 5, 12, 12) self.tree_view_vbox.pack_start(self.search_ali, False, False) self.tree_view_vbox.pack_start(self.tree_scroll_win, True, True) self.search_ali.connect("expose-event", self.search_ali_expose_event) # self.note_book = NoteBook() # self.list_view.on_draw_sub_item = self.__listview_on_draw_sub_item self.list_view.columns.add_range(["filename", "time"]) self.list_view.columns[0].width = 120 self.list_view.columns[1].width = 95 # self.note_book.hide_title() self.tree_view.paint_nodes_event = self.__treeview_paint_nodes_event # self.list_scroll_win.add_with_viewport(self.list_view) self.tree_scroll_win.add_with_viewport(self.tree_view) #self.note_book.add_layout1(self.list_scroll_win) self.note_book.add_layout1(self.list_view_vbox) self.note_book.add_layout2(self.tree_view_vbox) #self.play_list_vbox.pack_start(self.scroll_win, True, True) self.play_list_vbox.pack_start(self.note_book, True, True) def __listview_on_draw_sub_item(self, e): color = self.listview_color.get_color() if e.double_items == e.item: e.text_color = "#000000" text_size=9 color_info = [(0, (color, 0.8)), (1, (color, 0.8))] draw_vlinear(e.cr, e.x, e.y, e.w, e.h, color_info ) elif e.item in e.single_items: e.text_color = "#FFFFFF" text_size=9 color_info = [(0, (color, 0.5)), (1, (color, 0.5))] draw_vlinear(e.cr, e.x, e.y, e.w, e.h, color_info ) elif e.motion_items == e.item: e.text_color = "#FFFFFF" text_size=9 color_info = [(0, (color, 0.2)), (1, (color, 0.2))] draw_vlinear(e.cr, e.x, e.y, e.w, e.h, color_info ) else: e.text_color = "#FFFFFF" text_size=9 # text = e.text.decode("utf-8") one_width = self.list_view.columns[0].width two_width = self.list_view.columns[1].width #if e.w == one_width: # 显示播放名字的第一列. if e.column_index == 0: # t_width = 0 t_index = 0 add_point = False for t in text: t_width += get_text_size(t, text_size=text_size)[0] if t_width > one_width - 20: add_point = True break t_index += 1 if add_point: text = text[:t_index] + "..." # alignment = Text.LEFT x = e.x + 15 elif e.w == two_width: alignment = Text.RIGHT x = e.x - 15 e.draw_text(e.cr, str(text), x, e.y, e.w, e.h, text_color=e.text_color, text_size=text_size, alignment=alignment) def __treeview_paint_nodes_event(self, node_event): color = self.listview_color.get_color() text_color = "#FFFFFF" # 单击和移动, 双击. if node_event.node in node_event.single_items: color_info = [(0, (color, 0.45)), (1, (color, 0.45))] draw_vlinear(node_event.cr, node_event.x, node_event.y, node_event.w, node_event.h, color_info ) #text_color = "#000000" elif node_event.node in node_event.motion_items: color_info = [(0, (color, 0.75)), (1, (color, 0.75))] draw_vlinear(node_event.cr, node_event.x, node_event.y, node_event.w, node_event.h, color_info ) # x_padding = 12 # 因为要和搜索框对齐. if 0 == node_event.node.leave: # 根节点. :比如->> >我看过的. >优酷视频. >pps. if node_event.node.is_expanded: pixbuf = self.one_open.get_pixbuf() else: pixbuf = self.one_close.get_pixbuf() elif 1 == node_event.node.leave: # if node_event.node.is_expanded: pixbuf = self.two_open.get_pixbuf() else: pixbuf = self.two_close.get_pixbuf() else: if node_event.node.is_expanded: pixbuf = self.three_open.get_pixbuf() else: pixbuf = self.three_close.get_pixbuf() # icon_x = node_event.x + x_padding icon_y = node_event.y + node_event.h/2 - pixbuf.get_height()/2 + 1 if node_event.node.leave > 1: icon_x += (node_event.node.leave - 1) * pixbuf.get_width() if node_event.node.leave > 0: text_color = "#a8a8a8" ########## # 画图标. if node_event.node.nodes != []: draw_pixbuf(node_event.cr, pixbuf, icon_x, icon_y) # 画文本. text_x_padding = 15 text_size = 9 draw_text(node_event.cr, node_event.node.text, icon_x + text_x_padding, node_event.y + node_event.h/2 - get_text_size(node_event.node.text, text_size=9)[1]/2, text_color=text_color, text_size=text_size ) def search_ali_expose_event(self, widget, event): cr = widget.window.cairo_create() rect = widget.allocation # bg_color = "#272727" cr.set_source_rgba(*alpha_color_hex_to_cairo((bg_color,1.0))) cr.rectangle(rect.x, rect.y, rect.width + 1, rect.height) cr.fill() # propagate_expose(widget, event) return True
class Menu: """interface to the users""" def __init__(self): self.notebook = NoteBook() self.choices = {1:self.add_notes, 2:self.modify_notes_tags, 3:self.append_notes_tags, 4:self.search_notes, 5:self.display_notes, 6:self.quit} def show_menu(self): print(""" \n Menu\n-----------------------------------------------------------\n\n 1. Add notes\n 2. Modify notes or tags\n 3. Append notes or tags\n 4. Search notes\n 5. Display notes\n 6. Quit\n""") def run(self): while True: self.show_menu() choice = int(input('Please enter your choice: ')) if choice > 5 or choice < 0: print('Incorrect Choice') break else: self.choices[choice]() def add_notes(self): memo = input('Please enter your memo: ') tags = input('Please enter your tags: ') self.notebook.create_notes(memo,tags) print('Note added') def modify_notes_tags(self): id = input("Please let me know the Note id: ") if self.notebook.check_id(id): memo = input("Please let me know the updated Note memo: ") tags = input("Please let me know the updated Note tags: ") if memo: self.notebook.modify_notes_tags(id,memo) if tags: self.notebook.modify_notes_tags(id,tags) else: print('Id not available') def append_notes_tags(self): id = input("Please let me know the Note id: ") if self.notebook.check_id(id): memo = input("Please let me know the memo to be appended: ") tags = input("Please let me know the tags to be appended: ") if memo: self.notebook.append_notes_tags(id,memo) if tags: self.notebook.append_notes_tags(id,tags) else: print('Id not available') def search_notes(self): filter = input("Please enter the filter string: ") self.notebook.search(filter) def display_notes(self): self.notebook.display() def quit(self): exit()
from notebook import NoteBook from notebook import Note quote_book = NoteBook("The Quote Book") new_note = Note() new_note.write_content( "Don't cry because it's over smile because it happened. -Dr.Seuss") quote_book.add_note(new_note) print(quote_book.get_number_of_pages()) quote_book.add_note(Note("Hello, World1")) quote_book.add_note(Note("Hello, World2")) quote_book.add_note(Note("Hello, World3")) quote_book.add_note(Note("Hello, World4")) quote_book.add_note(Note("Hello, World5")) print(quote_book.get_number_of_pages()) my_note = quote_book.remove_note(1) print(my_note) print(quote_book.get_number_of_pages())
import hashlib import binascii import evernote.edam.userstore.constants as UserStoreConstants import evernote.edam.type.ttypes as Types from auth import Auth from tag import Tag from notebook import NoteBook from note import Note auth = Auth() tags = Tag() notebooks = NoteBook() notes = Note() #Authenticate the user using the oauth or developer toke client = auth.authenticate() user_store = client.get_user_store() #Check whether the version is up to date with the latest version provided by evernote version_ok = user_store.checkVersion( "Evernote", UserStoreConstants.EDAM_VERSION_MAJOR, UserStoreConstants.EDAM_VERSION_MINOR ) print("Is my Evernote API version up to date? ", str(version_ok)) print("") if not version_ok: exit(1) note_store = client.get_note_store()
def save_notebook(access, notebook_name, content, version, o): #user_nickname=get_user_nickname(o) user_nickname=get_user_name_network(o) if not user_nickname: return {'error':'Please login to save changes'} user_name=get_user_name(o) user_network=get_user_network(o) user_id=get_user_id(o) user_name_network_id=get_user_name_network_id(o) # TODO: check if the notebook exists and the user is the same as owner??? #b=get_notebook(user_nickname, access, notebook_name, None) #if b and b.user_id != user_id: # o.response.out.write("{'error':'Sorry, Only owners can save changes.'}") # return # find the last version last_version=0 (last_content, last_version)=get_notebook_content(user_nickname, access, notebook_name, None) if not last_version: last_version= 0 # if version is not specified in the request make it more than last_version by 1 version = int(version) if version != '' else last_version + 1 key_name=user_nickname+"/"+access+"/"+notebook_name # if this is a new version save it in NoteBook if version >= last_version: #create a new NoteBook. key_name must go in constructor n=NoteBook(key_name=key_name) n.notebook_name=notebook_name n.user_nickname=user_nickname n.user_name=user_name n.user_network=user_network n.user_id=user_id n.user_name_network_id=user_name_network_id n.access=access n.content=content n.version=version #save it #import pdb; pdb.set_trace() n.put() # No matter if it is a new or an old version save it in NoteBookVersion n=NoteBookVersion(key_name=key_name+"/"+str(version)) n.notebook_name=notebook_name n.user_nickname=user_nickname n.user_name=user_name n.user_network=user_network n.user_id=user_id n.user_name_network_id=user_name_network_id n.access=access n.content=content n.version=version #save it n.put() #output r = {} r['key_name']=key_name r['notebook_name']=notebook_name r['user_nickname']=user_nickname r['user_name']=user_name r['user_network']=user_network r['user_id']=user_id r['user_name_network_id']=user_name_network_id r['access']=access #r['content']=content r['version']=version return r
# class 활용 예제 from notebook import NoteBook from notebook import Note new_note = Note() new_note.write_content("Don't cry. because I'm happy") quote_book = NoteBook("The Quote Book") quote_book.add_note(new_note) quote_book.add_note(new_note) quote_book.add_note(new_note) quote_book.add_note(new_note) quote_book.add_note(new_note) print(quote_book.get_number_of_pages()) # quote_book.add_note(Note("Hellow, world")) # quote_book.add_note(Note("Hellow, world")) # quote_book.add_note(Note("Hellow, world")) # print(quote_book.get_number_of_pages()) my_note = quote_book.remove_note(10) print(my_note) # my_note = quote_book.remove_note(1) # print(my_note)
from notebook import Note from notebook import NoteBook sentence1 = "hi" note1 = Note(sentence1) sentence1 = "hello" note2 = Note(sentence1) sentenct1 = "how are you?" note3 = Note(sentence1) print(note1) note1.remove() print(note1) sentence2 = NoteBook("대화") sentence2.add_note(note1) sentence2.add_note(note2) print(sentence2.get_number_of_pages()) sentence2.add_note(note1, 100) for i in range(300): sentence2.add_note(note1, i) print(sentence2.get_number_of_pages())
class Menu: def __init__(self): self.notebook = NoteBook() self.choices = { '1': self.show_notes, '2': self.search_notes, '3': self.add_notes, '4': self.modify_note, '5': self.quit } def display_menu(self): print(""" Notebook Menu 1. to show all notes 2. Search 3. ADD NEW NOTES 4. Modify 5. QUIT """) def run(self): while True: self.display_menu() choice = input('hey pick an option: ') action = self.choices.get(choice) if action: action() else: print("{0} is not a valid choice".format(choice)) def show_notes(self, notes=None): if not notes: notes = self.notebook.notes for note in notes: print("{0}: {1}\n{2}".format(note.id, note.tags.note.memo)) def search_notes(self): filter = input('sEARCH FOR: ') notes = self.notebook.search(filter) self.show_notes(notes) def add_notes(self): memo = input('Type in your memo: ') self.notebook.new_note(memo) print('Your note has been added') def modify_note(self): id = input('Enter id here: ') memo = input('Modify notes: ') tags = input('modify tags: ') if memo: self.notebook.modify_memo(id, memo) if tags: self.notebook.modify_tags(id, tags) def quit(self): print('Thank you for using my Notebook') sys.exit(0)
def readTodoFile(fname): nbtmp = NoteBook() nbtmp.setTitle("Updated TODO") nbtmp.tmpNoteFile = "notebook-tmp-C.md" f = open(fname, "r") tmp = f.read() f.close() # print("tmp file content--------------") tmp = tmp.splitlines() # print(tmp) # add trailing newlines for easier parsing # for i in range(len(tmp)): # tmp[i] += "\n" # filter header out c = 0 while True: if c >= len(tmp): break line = tmp[c] # print("skipping {}".format(line)) mtitle = regexes.REtitle.match(line) if mtitle: break c += 1 # print("skipping {}".format(c)) ns = [] hashes = [] bodys = [] body = "" while c < len(tmp): line = tmp[c] # print("{}".format( line )) mtitle = regexes.REtitle.match(line) mhash = regexes.REhash.match(line) mdate = regexes.REdate.match(line) mmdate = regexes.REmdate.match(line) mdiv = regexes.REdiv.match(line) if mtitle: n = Note() bodys.append(body) body = "" s = mtitle.group(1) s = s.replace("'", "") # strip ' from title (causes problems with rm) n.setTitle(s) ns.append(n) # ni += 1 elif mdiv: # do nothing True elif mhash: s = mhash.group(1) hashes.append(s) elif mdate: n.setDate(mdate.group(1)) elif mmdate: n.setDate(mmdate.group(1)) else: body += line + "\n" c += 1 bodys.append(body) # append last hanging body # print("###########################################") for i, n in enumerate(ns): body = bodys[i + 1] # print("last char: vvv{}vvv".format(body[-2:])) # if (body[-2:] == "\n"): # print("newline detected") # body = body[:-2] # body = body[:-2] #strip trailing newline # body = body.rstrip() # body += "\n" # body += "\n" n.setBody(body) # print("{} -- {}".format(i, n.title)) # print("{} hash is {}".format(i, n.hash() )) # print("----") # print("{}".format(n.body)) # print("----") # print("{}".format(body)) nbtmp.addNote(n) return nbtmp
class Menu: """Display a menu and respond to choices when run.""" def __init__(self): self.notebook = NoteBook() self.choices = { "1": self.show_notes, "2": self.search_notes, "3": self.add_note, "4": self.modify_note, "5": self.quit, } def display_menu(self): print( """ Notebook Menu 1. Show all Notes 2. Search Notes 3. Add Note 4. Modify Note 5. Quit """) def run(self): """Display the menu and respond to choices.""" while True: self.display_menu() choice = input('Enter an option: ') action = self.choices.get(choice) if action: action() else : print(f'{choice} is not a valid option') def show_notes(self, notes=None)-> List: """displays all the notes in the notebook""" if not notes: notes = self.notebook.notes for note in notes: print(f'{note.id}: {note.tags}\n{note.memo}') def search_notes(self): """search for a note in the notebook""" filter = str(input('search for:')) note = self.notebook.search(filter) self.show_notes(note) def add_note(self): """Add a new note""" memo = str(input('Enter a memo:')) tags = str(input('Enter a tag:')) self.notebook.new_note(memo, tags) print('You have added a new note') def modify_note(self): """Modify an existing note""" id = input('Enter a note id:') memo = str(input('Enter a memo:')) tags = str(input('Enter a tag:')) if memo: self.notebook.modify_memo(id, memo) if tags: self.notebook.modify_tags(id, tags) def quit(self): print('Thank you for using the notebook today') sys.exit(0)
class PlayListView(object): def __init__(self): self.one_close = app_theme.get_pixbuf("treeview/1-close.png") self.one_open = app_theme.get_pixbuf("treeview/1-open.png") self.two_close = app_theme.get_pixbuf("treeview/2-close.png") self.two_open = app_theme.get_pixbuf("treeview/2-open.png") self.three_close = app_theme.get_pixbuf("treeview/3-close.png") self.three_open = app_theme.get_pixbuf("treeview/3-open.png") # self.tree_view_open = app_theme.get_pixbuf("treeview/open.png") self.tree_view_close = app_theme.get_pixbuf("treeview/close.png") self.tree_view_right = app_theme.get_pixbuf("treeview/right.png") self.tree_view_bottom = app_theme.get_pixbuf("treeview/bottom.png") # self.listview_color = ui_theme.get_color("scrolledbar") self.play_list_vbox = gtk.VBox() # self.list_view_vbox = gtk.VBox() self.list_scroll_win = ScrolledWindow(0, 0) self.list_scroll_win.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS) self.list_view = ListView() # self.play_list_con = PlayListControl() # self.list_view_vbox.pack_start(self.list_scroll_win, True, True) self.list_view_vbox.pack_start(self.play_list_con, False, False) # 网络列表,搜索框. self.tree_scroll_win = ScrolledWindow(0, 0) self.tree_scroll_win.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS) self.tree_view_vbox = gtk.VBox() self.tree_view = TreeViewBase() self.search_ali = gtk.Alignment(0, 0, 1, 1) self.search = Search() self.search_ali.add(self.search) # self.search_ali.set_padding(7, 5, 12, 12) self.tree_view_vbox.pack_start(self.search_ali, False, False) self.tree_view_vbox.pack_start(self.tree_scroll_win, True, True) self.search_ali.connect("expose-event", self.search_ali_expose_event) # self.note_book = NoteBook() # self.list_view.on_draw_sub_item = self.__listview_on_draw_sub_item self.list_view.columns.add_range(["filename", "time"]) self.list_view.columns[0].width = 120 self.list_view.columns[1].width = 95 # self.note_book.hide_title() self.tree_view.paint_nodes_event = self.__treeview_paint_nodes_event # self.list_scroll_win.add_with_viewport(self.list_view) self.tree_scroll_win.add_with_viewport(self.tree_view) #self.note_book.add_layout1(self.list_scroll_win) self.note_book.add_layout1(self.list_view_vbox) self.note_book.add_layout2(self.tree_view_vbox) #self.play_list_vbox.pack_start(self.scroll_win, True, True) self.play_list_vbox.pack_start(self.note_book, True, True) def __listview_on_draw_sub_item(self, e): color = self.listview_color.get_color() if e.double_items == e.item: e.text_color = "#000000" text_size = 9 color_info = [(0, (color, 0.8)), (1, (color, 0.8))] draw_vlinear(e.cr, e.x, e.y, e.w, e.h, color_info) elif e.item in e.single_items: e.text_color = "#FFFFFF" text_size = 9 color_info = [(0, (color, 0.5)), (1, (color, 0.5))] draw_vlinear(e.cr, e.x, e.y, e.w, e.h, color_info) elif e.motion_items == e.item: e.text_color = "#FFFFFF" text_size = 9 color_info = [(0, (color, 0.2)), (1, (color, 0.2))] draw_vlinear(e.cr, e.x, e.y, e.w, e.h, color_info) else: e.text_color = "#FFFFFF" text_size = 9 # text = e.text.decode("utf-8") one_width = self.list_view.columns[0].width two_width = self.list_view.columns[1].width #if e.w == one_width: # 显示播放名字的第一列. if e.column_index == 0: # t_width = 0 t_index = 0 add_point = False for t in text: t_width += get_text_size(t, text_size=text_size)[0] if t_width > one_width - 20: add_point = True break t_index += 1 if add_point: text = text[:t_index] + "..." # alignment = Text.LEFT x = e.x + 15 elif e.w == two_width: alignment = Text.RIGHT x = e.x - 15 e.draw_text(e.cr, str(text), x, e.y, e.w, e.h, text_color=e.text_color, text_size=text_size, alignment=alignment) def __treeview_paint_nodes_event(self, node_event): color = self.listview_color.get_color() text_color = "#FFFFFF" # 单击和移动, 双击. if node_event.node in node_event.single_items: color_info = [(0, (color, 0.45)), (1, (color, 0.45))] draw_vlinear(node_event.cr, node_event.x, node_event.y, node_event.w, node_event.h, color_info) #text_color = "#000000" elif node_event.node in node_event.motion_items: color_info = [(0, (color, 0.75)), (1, (color, 0.75))] draw_vlinear(node_event.cr, node_event.x, node_event.y, node_event.w, node_event.h, color_info) # x_padding = 12 # 因为要和搜索框对齐. if 0 == node_event.node.leave: # 根节点. :比如->> >我看过的. >优酷视频. >pps. if node_event.node.is_expanded: pixbuf = self.one_open.get_pixbuf() else: pixbuf = self.one_close.get_pixbuf() elif 1 == node_event.node.leave: # if node_event.node.is_expanded: pixbuf = self.two_open.get_pixbuf() else: pixbuf = self.two_close.get_pixbuf() else: if node_event.node.is_expanded: pixbuf = self.three_open.get_pixbuf() else: pixbuf = self.three_close.get_pixbuf() # icon_x = node_event.x + x_padding icon_y = node_event.y + node_event.h / 2 - pixbuf.get_height() / 2 + 1 if node_event.node.leave > 1: icon_x += (node_event.node.leave - 1) * pixbuf.get_width() if node_event.node.leave > 0: text_color = "#a8a8a8" ########## # 画图标. if node_event.node.nodes != []: draw_pixbuf(node_event.cr, pixbuf, icon_x, icon_y) # 画文本. text_x_padding = 15 text_size = 9 draw_text(node_event.cr, node_event.node.text, icon_x + text_x_padding, node_event.y + node_event.h / 2 - get_text_size(node_event.node.text, text_size=9)[1] / 2, text_color=text_color, text_size=text_size) def search_ali_expose_event(self, widget, event): cr = widget.window.cairo_create() rect = widget.allocation # bg_color = "#272727" cr.set_source_rgba(*alpha_color_hex_to_cairo((bg_color, 1.0))) cr.rectangle(rect.x, rect.y, rect.width + 1, rect.height) cr.fill() # propagate_expose(widget, event) return True
note_1 = Note(good_sentence) print(note_1) note_1.remove() print(note_1) good_sentence = """삶이 있는 한 희망은 있다. - 키케로 """ note_2 = Note(good_sentence) good_sentence = """하루에 3시간을 걸으면 7년 후에 지구를 한 바퀴 돌 수 있다. - 사무엘 존슨""" note_3 = Note(good_sentence) good_sentence = """행복의 문이 하나 닫히면 다른 문이 열린다. 그러나 우리는 종종 닫힌 문을 멍하니 바라보다가 우리를 향해 열린 문을 보지 못하게 된다. - 헬렌 켈러""" note_4 = Note(good_sentence) wise_saying_notebook = NoteBook("명언 노트") wise_saying_notebook.add_note(note_1) print(wise_saying_notebook.get_number_of_all_pages()) wise_saying_notebook.add_note(note_2) print(wise_saying_notebook.get_number_of_all_pages()) wise_saying_notebook.add_note(note_3) wise_saying_notebook.add_note(note_4) print(wise_saying_notebook.get_number_of_all_pages()) print(wise_saying_notebook.get_number_of_all_characters()) wise_saying_notebook.remove_note(3) print(wise_saying_notebook.get_number_of_all_pages()) wise_saying_notebook.add_note(note_1, 100)
class Menu(object): """简单的提供一个菜单接口并允许用户输入他们的选择""" def __init__(self): self.notebook = NoteBook() self.choices = { "1": self.show_notes, "2": self.search_notes, "3": self.add_note, "4": self.modify_note, "5": self.quit } def diaplay_menu(self): print(''' NoteBook Menu 1. Ahow all Notes 2. Search Notes 3. Add Note 4. Modify Note 5. Quit ''') def run(self): '''列出所有choice并调用相应的action''' while True: self.diaplay_menu() choice = input("Enter an option:") action = self.choices.get(choice) if action: action() else: print('{0} is not a valid choice'.format(choice)) def show_notes(self, notes=None): if not notes: notes = self.notebook.notes for note in notes: print("{0}: {1}\n{2}".format(note.id, note.tags, note.memo)) def search_notes(self): filter = input("Search for:") notes = self.notebook.search(filter) self.show_notes(notes) def add_note(self): memo = input("Enter a memo") self.notebook.new_note(memo) print("Your note has been added") def modify_note(self): id = input("Enter a note id") memo = input("Enter a memo") tags = input("Enter tags") if memo: self.notebook.modify_memo(id, memo) if tags: self.notebook.modify_tags(id, tags) def quit(self): print("Thank you for using your notebook today. ") sys.exit(0)