504
504
raise FriendsError(message or str(error))
506
def _calculate_row_cell(self, message_id, column_name):
507
"""Find x,y coords in the model based on message_id and column_name."""
508
row_id = _seen_ids.get(message_id)
509
col_idx = COLUMN_INDICES.get(column_name)
510
if None in (row_id, col_idx):
511
raise FriendsError('Cell could not be found.')
512
return row_id, col_idx
506
514
def _fetch_cell(self, message_id, column_name):
507
515
"""Find a column value associated with a specific message_id."""
508
row_id = _seen_ids.get(message_id)
509
col_idx = COLUMN_INDICES.get(column_name)
510
if None not in (row_id, col_idx):
511
row = Model.get_row(row_id)
514
raise FriendsError('Value could not be found.')
516
row_id, col_idx = self._calculate_row_cell(message_id, column_name)
517
return Model.get_row(row_id)[col_idx]
519
def _set_cell(self, message_id, column_name, value):
520
"""Set a column value associated with a specific message_id."""
521
row_id, col_idx = self._calculate_row_cell(message_id, column_name)
522
Model.get_row(row_id)[col_idx] = value
524
def _inc_cell(self, message_id, column_name):
525
"""Increment a column value associated with a specific message_id."""
526
row_id, col_idx = self._calculate_row_cell(message_id, column_name)
527
Model.get_row(row_id)[col_idx] += 1
529
def _dec_cell(self, message_id, column_name):
530
"""Decrement a column value associated with a specific message_id."""
531
row_id, col_idx = self._calculate_row_cell(message_id, column_name)
532
Model.get_row(row_id)[col_idx] -= 1
516
534
def _new_book_client(self, source):
517
535
client = EBook.BookClient.new(source)