mirror of https://github.com/CIRCL/AIL-framework
				
				
				
			
		
			
				
	
	
		
			61 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
| #!/usr/bin/env python3
 | |
| # -*-coding:UTF-8 -*
 | |
| """
 | |
| The Telegram Feeder Importer Module
 | |
| ================
 | |
| 
 | |
| Process Telegram JSON
 | |
| 
 | |
| """
 | |
| import os
 | |
| import sys
 | |
| import datetime
 | |
| 
 | |
| sys.path.append(os.environ['AIL_BIN'])
 | |
| ##################################
 | |
| # Import Project packages
 | |
| ##################################
 | |
| from importer.feeders.Default import DefaultFeeder
 | |
| from lib.objects.Usernames import Username
 | |
| from lib import item_basic
 | |
| 
 | |
| class TelegramFeeder(DefaultFeeder):
 | |
| 
 | |
|     def __init__(self, json_data):
 | |
|         super().__init__(json_data)
 | |
|         self.name = 'telegram'
 | |
| 
 | |
|     # define item id
 | |
|     def get_item_id(self):
 | |
|         # TODO use telegram message date
 | |
|         date = datetime.date.today().strftime("%Y/%m/%d")
 | |
|         channel_id = str(self.json_data['meta']['chat']['id'])
 | |
|         message_id = str(self.json_data['meta']['id'])
 | |
|         item_id = f'{channel_id}_{message_id}'
 | |
|         item_id = os.path.join('telegram', date, item_id)
 | |
|         self.item_id = f'{item_id}.gz'
 | |
|         return self.item_id
 | |
| 
 | |
|     def process_meta(self):
 | |
|         """
 | |
|         Process JSON meta field.
 | |
|         """
 | |
|         # message chat
 | |
|         meta = self.json_data['meta']
 | |
|         if meta.get('chat'):
 | |
|             if meta['chat'].get('username'):
 | |
|                 user = meta['chat']['username']
 | |
|                 if user:
 | |
|                     date = item_basic.get_item_date(self.item_id)
 | |
|                     username = Username(user, 'telegram')
 | |
|                     username.add(date, self.item_id)
 | |
|         # message sender
 | |
|         if meta.get('sender'):
 | |
|             if meta['sender'].get('username'):
 | |
|                 user = meta['sender']['username']
 | |
|                 if user:
 | |
|                     date = item_basic.get_item_date(self.item_id)
 | |
|                     username = Username(user, 'telegram')
 | |
|                     username.add(date, self.item_id)
 | |
|         return None
 |