def info(self): info = base.read('../Tittle/assets/maps/' + self.name + '_info.txt') tile_types = {} for line in info: if '!def ' in line: try: if ' ^' in line: line = line.replace('!def ^','') clip = False else: line = line.replace('!def ', '') clip = True id, loc = line.split(': ', 1) loc = loc.replace(')','') sheet, pos = loc.split('(', 1) pos_x, pos_y = pos.split(',', 1) tile_types.setdefault(id,[]) tile_types[id].append(sheet) tile_types[id].append(int(pos_x)) tile_types[id].append(int(pos_y)) tile_types[id].append(clip) except: print("Error gathering info") traceback.print_exc() raise SystemExit elif 'type: ' in line: self.type = line.replace('type: ', '') print(tile_types) return tile_types
def delete(): book_id = base.base_id try: book_id = int(argv[1]) except Exception as e: print(argv[1], 'is not an integer.') return if book_id <= base.base_id: print(argv[1], 'is not an illegal id.') return status = base.read() if book_id - base.base_id > len(status): print('Book id', book_id, 'not exist.') return deleted_book = status.pop(book_id - base.base_id - 1) try: affirmative = input( "Delete item:\n %s %s/%s\nSure? (Y/else) " % (deleted_book['book_name'], deleted_book['current_page'], deleted_book['book_page'])) except KeyboardInterrupt: print('\nCanceled.') return if affirmative == 'Y': base.write(status) print('Deleted.') else: print('Canceled.')
def show(): status = base.read() if status == []: print("No books. Use '--add' option to add a book.") i = base.base_id + 1 for book in status: percent_info = "%3d%%" % (int( float(book['current_page']) / float(book['book_page']) * 100)) page_info = "%03d/%03d" % (int( book['current_page']), int(book['book_page'])) print('No.' + str(i), percent_info, page_info, book['book_name'], sep=' ') i += 1
def add(): status = base.read() page_number = 0 try: page_number = int(argv[2]) except Exception as e: print(argv[2], 'is not an integer.') return if page_number <= 0: print(argv[2], 'is not an positive integer.') return book_name = argv[1].replace('\t', ' ') page_number_str = str(page_number) status.append({'book_name': book_name, 'book_page': page_number_str, 'current_page': '0'}) base.write(status) print("Book <%s> (%s) added." % (book_name, page_number_str))
def read(): book_id = base.base_id current_page = 0 try: book_id = int(argv[1]) except Exception as e: print(argv[1], 'is not an integer.') return if book_id <= base.base_id: print(argv[1], 'is not an illegal id.') return try: current_page = int(argv[2]) except Exception as e: print(argv[2], 'is not an integer.') return if current_page <= 0: print(argv[2], 'is not an positive integer.') return status = base.read() if book_id - base.base_id > len(status): print('Book id', book_id, 'not exist.') return book_status = status[book_id - base.base_id - 1] book_page_str = book_status['book_page'] if int(book_page_str) < current_page: print('Incorrect page.') return current_page_str = str(current_page) origin_page_str = book_status['current_page'] book_status['current_page'] = current_page_str book_name = book_status['book_name'] base.write(status) print("Updated: %s %s/%s->%s/%s" % (book_name, origin_page_str, book_page_str, current_page_str, book_page_str))
def load(self): self.map_array = base.read('../Tittle/assets/maps/' + self.name + '_map.txt')