| Total Complexity | 4 |
| Total Lines | 21 |
| Duplicated Lines | 0 % |
| 1 | import csv |
||
| 8 | class ExportCommand(BotCommand): |
||
| 9 | command = '/export' |
||
| 10 | |||
| 11 | def default(self, message): |
||
| 12 | from tempfile import mkstemp |
||
| 13 | |||
| 14 | tab = self.get_tab(message.chat.id) |
||
| 15 | |||
| 16 | csvhandle, csvfilename = mkstemp(suffix='.csv', prefix='verese-export-') |
||
| 17 | with os.fdopen(csvhandle, 'wb') as csvfile: |
||
| 18 | csvwriter = csv.writer(csvfile, delimiter=',') |
||
| 19 | csvwriter.writerow(['Person', 'Amount', 'Date', 'Reason']) |
||
| 20 | for entry in tab.entries: |
||
| 21 | user = self._db.root.users[entry.user_id] |
||
| 22 | user_repr = '{} {}'.format(user.first_name, user.last_name).strip() |
||
| 23 | row = [u'{}'.format(x).encode('utf-8') |
||
| 24 | for x in [user_repr, entry.amount, entry.date, entry.reason]] |
||
| 25 | csvwriter.writerow(row) |
||
| 26 | |||
| 27 | self.bot.sendDocument(chat_id=message.chat.id, document=open(csvfilename, 'rb')) |
||
| 28 | os.unlink(csvfilename) |
||
| 29 |