Merge pull request #139 from gallypette/jabber-feeder

add: [username] jabber support
This commit is contained in:
Thirion Aurélien 2022-03-04 13:41:11 +01:00 committed by GitHub
commit 9199cfe6df
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 269 additions and 183 deletions

View file

@ -0,0 +1,50 @@
#!/usr/bin/env python3
# -*-coding:UTF-8 -*
"""
The JSON Receiver Module
================
Receiver Jabber Json Items
"""
import os
import json
import sys
import time
import datetime
sys.path.append(os.path.join(os.environ['AIL_BIN'], 'lib'))
import item_basic
import Username
sys.path.append(os.path.join(os.environ['AIL_BIN'], 'import', 'ail_json_importer'))
from Default_json import Default_json
class Ail_feeder_jabber(Default_json):
"""Jabber Feeder functions"""
def __init__(self, name, json_item):
super().__init__(name, json_item)
def get_feeder_name(self):
return 'jabber'
# define item id
def get_item_id(self):
item_date = time.strptime(self.json_item['meta']['jabber:ts'], "%Y-%m-%dT%H:%M:%S.%f")
item_date_str = time.strftime("%Y/%m/%d", item_date)
item_id = str(self.json_item['meta']['jabber:id'])
return os.path.join('jabber', item_date_str, item_id) + '.gz'
def process_json_meta(self, process, item_id):
'''
Process JSON meta filed.
'''
jabber_id = str(self.json_item['meta']['jabber:id'])
item_basic.add_map_obj_id_item_id(jabber_id, item_id, 'jabber_id')
to = str(self.json_item['meta']['jabber:to'])
fr = str(self.json_item['meta']['jabber:from'])
item_date = item_basic.get_item_date(item_id)
Username.save_item_correlation('jabber', to, item_id, item_date)
Username.save_item_correlation('jabber', fr, item_id, item_date)
return None

View file

@ -167,7 +167,11 @@ def get_correlation_node_icon(correlation_name, correlation_type=None, value=Non
elif correlation_type == 'twitter': elif correlation_type == 'twitter':
icon_class = 'fab' icon_class = 'fab'
icon_text = '\uf099' icon_text = '\uf099'
elif correlation_type == 'jabber':
icon_class = 'fa'
icon_text = '\uf007'
else: else:
icon_class = 'fa'
icon_text = '\uf007' icon_text = '\uf007'
elif correlation_name == 'decoded': elif correlation_name == 'decoded':

View file

@ -15,7 +15,7 @@ config_loader = ConfigLoader.ConfigLoader()
r_serv_crawler = config_loader.get_redis_conn("ARDB_Onion") r_serv_crawler = config_loader.get_redis_conn("ARDB_Onion")
config_loader = None config_loader = None
correlation = Correlation.Correlation('username', ['telegram', 'twitter']) correlation = Correlation.Correlation('username', ['telegram', 'twitter', 'jabber'])
def save_item_correlation(subtype, username, item_id, item_date): def save_item_correlation(subtype, username, item_id, item_date):
correlation.save_item_correlation(subtype, username, item_id, item_date) correlation.save_item_correlation(subtype, username, item_id, item_date)

View file

@ -166,15 +166,17 @@ def add_item_parent(parent_item_id, item_id):
#### UNKNOW SECTION #### #### UNKNOW SECTION ####
def get_obj_id_item_id(parent_type, parent_id): def get_obj_id_item_id(parent_type, parent_id):
all_parents_type = ['twitter_id'] all_parents_type = ['twitter_id', 'jabber_id']
if parent_type in all_parents_type: if parent_type in all_parents_type:
return r_serv_metadata.hget('map:twitter_id:item_id', parent_id) return r_serv_metadata.hget('map:{}:item_id'.format(parent_type), parent_id)
else: else:
return None return None
def add_map_obj_id_item_id(obj_id, item_id, obj_type): def add_map_obj_id_item_id(obj_id, item_id, obj_type):
if obj_type == 'twitter_id': if obj_type == 'twitter_id':
r_serv_metadata.hset('map:twitter_id:item_id', obj_id, item_id) r_serv_metadata.hset('map:twitter_id:item_id', obj_id, item_id)
if obj_type == 'jabber_id':
r_serv_metadata.hset('map:jabber_id:item_id', obj_id, item_id)
# delete twitter id # delete twitter id

View file

@ -39,7 +39,7 @@ hashDecoded = Blueprint('hashDecoded', __name__, template_folder='templates')
## TODO: put me in option ## TODO: put me in option
all_cryptocurrency = ['bitcoin', 'ethereum', 'bitcoin-cash', 'litecoin', 'monero', 'zcash', 'dash'] all_cryptocurrency = ['bitcoin', 'ethereum', 'bitcoin-cash', 'litecoin', 'monero', 'zcash', 'dash']
all_pgpdump = ['key', 'name', 'mail'] all_pgpdump = ['key', 'name', 'mail']
all_username = ['telegram', 'twitter'] all_username = ['telegram', 'twitter', 'jabber']
# ============ FUNCTIONS ============ # ============ FUNCTIONS ============
@ -130,6 +130,8 @@ def get_icon(correlation_type, type_id):
icon_text = 'fab fa-telegram-plane' icon_text = 'fab fa-telegram-plane'
elif type_id == 'twitter': elif type_id == 'twitter':
icon_text = 'fab fa-twitter' icon_text = 'fab fa-twitter'
elif type_id == 'jabber':
icon_text = 'fas fa-user'
return icon_text return icon_text
def get_icon_text(correlation_type, type_id): def get_icon_text(correlation_type, type_id):
@ -157,6 +159,8 @@ def get_icon_text(correlation_type, type_id):
icon_text = '\uf2c6' icon_text = '\uf2c6'
elif type_id == 'twitter': elif type_id == 'twitter':
icon_text = '\uf099' icon_text = '\uf099'
elif type_id == 'jabber':
icon_text = '\uf007'
return icon_text return icon_text
def get_all_types_id(correlation_type): def get_all_types_id(correlation_type):

View file

@ -31,7 +31,8 @@
<svg height="26" width="26"> <svg height="26" width="26">
<g class="nodes"> <g class="nodes">
<circle cx="13" cy="13" r="13" fill="#DDCC77"></circle> <circle cx="13" cy="13" r="13" fill="#DDCC77"></circle>
<text x="13" y="13" text-anchor="middle" dominant-baseline="central" class="graph_node_icon fab" font-size="16px">&#xf15a;</text> <text x="13" y="13" text-anchor="middle" dominant-baseline="central" class="graph_node_icon fab"
font-size="16px">&#xf15a;</text>
</g> </g>
</svg> </svg>
bitcoin bitcoin
@ -40,7 +41,8 @@
<svg height="26" width="26"> <svg height="26" width="26">
<g class="nodes"> <g class="nodes">
<circle cx="13" cy="13" r="13" fill="#DDCC77"></circle> <circle cx="13" cy="13" r="13" fill="#DDCC77"></circle>
<text x="13" y="13" text-anchor="middle" dominant-baseline="central" class="graph_node_icon fab" font-size="16px">&#xf3d0;</text> <text x="13" y="13" text-anchor="middle" dominant-baseline="central" class="graph_node_icon fab"
font-size="16px">&#xf3d0;</text>
</g> </g>
</svg> </svg>
monero monero
@ -49,7 +51,8 @@
<svg height="26" width="26"> <svg height="26" width="26">
<g class="nodes"> <g class="nodes">
<circle cx="13" cy="13" r="13" fill="#DDCC77"></circle> <circle cx="13" cy="13" r="13" fill="#DDCC77"></circle>
<text x="13" y="13" text-anchor="middle" dominant-baseline="central" class="graph_node_icon fab" font-size="16px">&#xf42e;</text> <text x="13" y="13" text-anchor="middle" dominant-baseline="central" class="graph_node_icon fab"
font-size="16px">&#xf42e;</text>
</g> </g>
</svg> </svg>
etherum etherum
@ -58,7 +61,8 @@
<svg height="26" width="26"> <svg height="26" width="26">
<g class="nodes"> <g class="nodes">
<circle cx="13" cy="13" r="13" fill="#DDCC77"></circle> <circle cx="13" cy="13" r="13" fill="#DDCC77"></circle>
<text x="13" y="13" text-anchor="middle" dominant-baseline="central" class="graph_node_icon fas" font-size="16px">&#xf51e;</text> <text x="13" y="13" text-anchor="middle" dominant-baseline="central" class="graph_node_icon fas"
font-size="16px">&#xf51e;</text>
</g> </g>
</svg> </svg>
other cryptocurrencies other cryptocurrencies
@ -69,7 +73,8 @@
<svg height="26" width="26"> <svg height="26" width="26">
<g class="nodes"> <g class="nodes">
<circle cx="13" cy="13" r="13" fill="#88CCEE"></circle> <circle cx="13" cy="13" r="13" fill="#88CCEE"></circle>
<text x="13" y="13" text-anchor="middle" dominant-baseline="central" class="graph_node_icon fas" font-size="16px">&#xf15b;</text> <text x="13" y="13" text-anchor="middle" dominant-baseline="central"
class="graph_node_icon fas" font-size="16px">&#xf15b;</text>
</g> </g>
</svg> </svg>
application application
@ -78,7 +83,8 @@
<svg height="26" width="26"> <svg height="26" width="26">
<g class="nodes"> <g class="nodes">
<circle cx="13" cy="13" r="13" fill="#88CCEE"></circle> <circle cx="13" cy="13" r="13" fill="#88CCEE"></circle>
<text x="13" y="13" text-anchor="middle" dominant-baseline="central" class="graph_node_icon fas" font-size="16px">&#xf1c7;</text> <text x="13" y="13" text-anchor="middle" dominant-baseline="central"
class="graph_node_icon fas" font-size="16px">&#xf1c7;</text>
</g> </g>
</svg> </svg>
audio audio
@ -87,7 +93,8 @@
<svg height="26" width="26"> <svg height="26" width="26">
<g class="nodes"> <g class="nodes">
<circle cx="13" cy="13" r="13" fill="#88CCEE"></circle> <circle cx="13" cy="13" r="13" fill="#88CCEE"></circle>
<text x="13" y="13" text-anchor="middle" dominant-baseline="central" class="graph_node_icon fas" font-size="16px">&#xf15c;</text> <text x="13" y="13" text-anchor="middle" dominant-baseline="central"
class="graph_node_icon fas" font-size="16px">&#xf15c;</text>
</g> </g>
</svg> </svg>
text text
@ -96,7 +103,8 @@
<svg height="26" width="26"> <svg height="26" width="26">
<g class="nodes"> <g class="nodes">
<circle cx="13" cy="13" r="13" fill="#88CCEE"></circle> <circle cx="13" cy="13" r="13" fill="#88CCEE"></circle>
<text x="13" y="13" text-anchor="middle" dominant-baseline="central" class="graph_node_icon fas" font-size="16px">&#xf249;</text> <text x="13" y="13" text-anchor="middle" dominant-baseline="central"
class="graph_node_icon fas" font-size="16px">&#xf249;</text>
</g> </g>
</svg> </svg>
other types of file other types of file
@ -107,7 +115,8 @@
<svg height="26" width="26"> <svg height="26" width="26">
<g class="nodes"> <g class="nodes">
<circle cx="13" cy="13" r="13" fill="#E1F5DF"></circle> <circle cx="13" cy="13" r="13" fill="#E1F5DF"></circle>
<text x="13" y="13" text-anchor="middle" dominant-baseline="central" class="graph_node_icon fas" font-size="16px">&#xf03e;</text> <text x="13" y="13" text-anchor="middle" dominant-baseline="central"
class="graph_node_icon fas" font-size="16px">&#xf03e;</text>
</g> </g>
</svg> </svg>
screenshot screenshot
@ -118,7 +127,8 @@
<svg height="26" width="26"> <svg height="26" width="26">
<g class="nodes"> <g class="nodes">
<circle cx="13" cy="13" r="13" fill="#44AA99"></circle> <circle cx="13" cy="13" r="13" fill="#44AA99"></circle>
<text x="13" y="13" text-anchor="middle" dominant-baseline="central" class="graph_node_icon fas" font-size="16px">&#xf084;</text> <text x="13" y="13" text-anchor="middle" dominant-baseline="central"
class="graph_node_icon fas" font-size="16px">&#xf084;</text>
</g> </g>
</svg> </svg>
key key
@ -127,7 +137,8 @@
<svg height="26" width="26"> <svg height="26" width="26">
<g class="nodes"> <g class="nodes">
<circle cx="13" cy="13" r="13" fill="#44AA99"></circle> <circle cx="13" cy="13" r="13" fill="#44AA99"></circle>
<text x="13" y="13" text-anchor="middle" dominant-baseline="central" class="graph_node_icon fas" font-size="16px">&#xf507;</text> <text x="13" y="13" text-anchor="middle" dominant-baseline="central"
class="graph_node_icon fas" font-size="16px">&#xf507;</text>
</g> </g>
</svg> </svg>
name name
@ -136,7 +147,8 @@
<svg height="26" width="26"> <svg height="26" width="26">
<g class="nodes"> <g class="nodes">
<circle cx="13" cy="13" r="13" fill="#44AA99"></circle> <circle cx="13" cy="13" r="13" fill="#44AA99"></circle>
<text x="13" y="13" text-anchor="middle" dominant-baseline="central" class="graph_node_icon fas" font-size="16px">&#xf1fa;</text> <text x="13" y="13" text-anchor="middle" dominant-baseline="central"
class="graph_node_icon fas" font-size="16px">&#xf1fa;</text>
</g> </g>
</svg> </svg>
mail mail
@ -147,7 +159,8 @@
<svg height="26" width="26"> <svg height="26" width="26">
<g class="nodes"> <g class="nodes">
<circle cx="13" cy="13" r="13" fill="#4dffff"></circle> <circle cx="13" cy="13" r="13" fill="#4dffff"></circle>
<text x="13" y="13" text-anchor="middle" dominant-baseline="central" class="graph_node_icon fab" font-size="16px">&#xf2c6;</text> <text x="13" y="13" text-anchor="middle" dominant-baseline="central"
class="graph_node_icon fab" font-size="16px">&#xf2c6;</text>
</g> </g>
</svg> </svg>
telegram telegram
@ -156,18 +169,30 @@
<svg height="26" width="26"> <svg height="26" width="26">
<g class="nodes"> <g class="nodes">
<circle cx="13" cy="13" r="13" fill="#4dffff"></circle> <circle cx="13" cy="13" r="13" fill="#4dffff"></circle>
<text x="13" y="13" text-anchor="middle" dominant-baseline="central" class="graph_node_icon fab" font-size="16px">&#xf099;</text> <text x="13" y="13" text-anchor="middle" dominant-baseline="central"
class="graph_node_icon fab" font-size="16px">&#xf099;</text>
</g> </g>
</svg> </svg>
twitter twitter
</div> </div>
<div class="my-1">
<svg height="26" width="26">
<g class="nodes">
<circle cx="13" cy="13" r="13" fill="#4dffff"></circle>
<text x="13" y="13" text-anchor="middle" dominant-baseline="central"
class="graph_node_icon fa" font-size="16px">&#xf007;</text>
</g>
</svg>
jabber
</div>
</td> </td>
<td> <td>
<div class="my-1"> <div class="my-1">
<svg height="26" width="26"> <svg height="26" width="26">
<g class="nodes"> <g class="nodes">
<circle cx="13" cy="13" r="13" fill="#3DA760"></circle> <circle cx="13" cy="13" r="13" fill="#3DA760"></circle>
<text x="13" y="13" text-anchor="middle" dominant-baseline="central" class="graph_node_icon fas" font-size="16px">&#xf06e;</text> <text x="13" y="13" text-anchor="middle" dominant-baseline="central"
class="graph_node_icon fas" font-size="16px">&#xf06e;</text>
</g> </g>
</svg> </svg>
onion onion
@ -176,7 +201,8 @@
<svg height="26" width="26"> <svg height="26" width="26">
<g class="nodes"> <g class="nodes">
<circle cx="13" cy="13" r="13" fill="#3DA760"></circle> <circle cx="13" cy="13" r="13" fill="#3DA760"></circle>
<text x="13" y="13" text-anchor="middle" dominant-baseline="central" class="graph_node_icon fab" font-size="16px">&#xf13b;</text> <text x="13" y="13" text-anchor="middle" dominant-baseline="central"
class="graph_node_icon fab" font-size="16px">&#xf13b;</text>
</g> </g>
</svg> </svg>
web web