From 0144c93820d698d476bc46121708fec60dba5070 Mon Sep 17 00:00:00 2001 From: tres Date: Wed, 24 Oct 2018 23:43:48 -0500 Subject: [PATCH 1/2] Add GroupMe support - Add GroupMe API Token entry to config.py - Create groupme.py parser --- parsers/config.py | 3 +++ parsers/groupme.py | 59 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 parsers/groupme.py diff --git a/parsers/config.py b/parsers/config.py index b04610f..f24395b 100755 --- a/parsers/config.py +++ b/parsers/config.py @@ -24,3 +24,6 @@ TELEGRAM_PHONE = '' TELEGRAM_USER_DIALOG_MESSAGES_LIMIT = 1000 + +GROUPME_API_TOKEN = '' + diff --git a/parsers/groupme.py b/parsers/groupme.py new file mode 100644 index 0000000..fa6151f --- /dev/null +++ b/parsers/groupme.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python3 +import sys + +if sys.version_info < (3, 0): + sys.stdout.write("Sorry, requires Python 3.\n") + sys.exit(1) + +import pandas as pd +from groupy import Client + +from parsers import log +from parsers import utils, config + + +def list_direct_messages(client): + chats = list(client.chats.list_all()) + result = [] + + for chat in chats: + result.extend(process_direct_message(chat)) + return result + + +def process_direct_message(chat): + result = [] + conversation_with_name = chat.other_user['name'] + user_id = chat.other_user['id'] + + for message in chat.messages.list_all(): + + timestamp = message.created_at.timestamp() + ordinal_date = message.created_at.toordinal() + text = message.text + result.append( + [timestamp, user_id, conversation_with_name, '', text, 'unknown', 'groupme', ordinal_date]) + return result + + +def main(): + client = Client.from_token(config.GROUPME_API_TOKEN) + data = list_direct_messages(client) + log.info('Converting to DataFrame...') + df = pd.DataFrame(data) + df.columns = config.ALL_COLUMNS + # import pdb; pdb.set_trace() + df['platform'] = 'groupme' + own_name = client.user.me['name'].strip() + df['senderName'] = own_name + + log.info('Detecting languages...') + df['language'] = 'unknown' + + utils.export_dataframe(df, 'groupme.pkl') + log.info('Done.') + + +if __name__ == '__main__': + main() + From 491db60e2b6d26f78b0a1cb967f67b542f2bd603 Mon Sep 17 00:00:00 2001 From: tres Date: Wed, 24 Oct 2018 23:46:23 -0500 Subject: [PATCH 2/2] Add GroupMe library to requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index e1fd169..d6b4685 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,3 +8,4 @@ wordcloud==1.3.1 Image==1.1 langdetect==1.0.7 Telethon==0.17 +GroupyAPI==0.10.2