mirror of
https://github.com/ail-project/ail-framework.git
synced 2024-11-27 00:07:16 +00:00
chg: [Crawled Domain] show crawled pastes by domain
This commit is contained in:
parent
40772a5732
commit
ca982e13e1
4 changed files with 80 additions and 8 deletions
|
@ -85,8 +85,8 @@ class HiddenServices(object):
|
||||||
paste_parent = father.replace(self.paste_directory, '')[1:]
|
paste_parent = father.replace(self.paste_directory, '')[1:]
|
||||||
paste_childrens = self.r_serv_metadata.smembers('paste_children:{}'.format(paste_parent))
|
paste_childrens = self.r_serv_metadata.smembers('paste_children:{}'.format(paste_parent))
|
||||||
## TODO: # FIXME: remove me
|
## TODO: # FIXME: remove me
|
||||||
if not paste_childrens:
|
paste_children = self.r_serv_metadata.smembers('paste_children:{}'.format(father))
|
||||||
paste_childrens = self.r_serv_metadata.smembers('paste_children:{}'.format(father))
|
paste_childrens = paste_childrens | paste_children
|
||||||
for children in paste_childrens:
|
for children in paste_childrens:
|
||||||
if self.domain in children:
|
if self.domain in children:
|
||||||
l_crawled_pastes.append(children)
|
l_crawled_pastes.append(children)
|
||||||
|
|
|
@ -150,6 +150,7 @@ bootstrap_label = ['primary', 'success', 'danger', 'warning', 'info']
|
||||||
|
|
||||||
UPLOAD_FOLDER = os.path.join(os.environ['AIL_FLASK'], 'submitted')
|
UPLOAD_FOLDER = os.path.join(os.environ['AIL_FLASK'], 'submitted')
|
||||||
|
|
||||||
|
PASTES_FOLDER = os.path.join(os.environ['AIL_HOME'], cfg.get("Directories", "pastes"))
|
||||||
SCREENSHOT_FOLDER = os.path.join(os.environ['AIL_HOME'], cfg.get("Directories", "crawled_screenshot"))
|
SCREENSHOT_FOLDER = os.path.join(os.environ['AIL_HOME'], cfg.get("Directories", "crawled_screenshot"))
|
||||||
|
|
||||||
max_dashboard_logs = int(cfg.get("Flask", "max_dashboard_logs"))
|
max_dashboard_logs = int(cfg.get("Flask", "max_dashboard_logs"))
|
||||||
|
|
|
@ -19,6 +19,9 @@ import Flask_config
|
||||||
app = Flask_config.app
|
app = Flask_config.app
|
||||||
cfg = Flask_config.cfg
|
cfg = Flask_config.cfg
|
||||||
r_serv_onion = Flask_config.r_serv_onion
|
r_serv_onion = Flask_config.r_serv_onion
|
||||||
|
r_serv_metadata = Flask_config.r_serv_metadata
|
||||||
|
bootstrap_label = Flask_config.bootstrap_label
|
||||||
|
PASTES_FOLDER = Flask_config.PASTES_FOLDER
|
||||||
|
|
||||||
hiddenServices = Blueprint('hiddenServices', __name__, template_folder='templates')
|
hiddenServices = Blueprint('hiddenServices', __name__, template_folder='templates')
|
||||||
|
|
||||||
|
@ -79,9 +82,36 @@ def onion_domain():
|
||||||
|
|
||||||
h = HiddenServices(onion_domain, 'onion')
|
h = HiddenServices(onion_domain, 'onion')
|
||||||
l_pastes = h.get_last_crawled_pastes()
|
l_pastes = h.get_last_crawled_pastes()
|
||||||
screenshot = h.get_domain_random_screenshot(l_pastes)[0]
|
screenshot = h.get_domain_random_screenshot(l_pastes)
|
||||||
|
if screenshot:
|
||||||
|
screenshot = screenshot[0]
|
||||||
|
else:
|
||||||
|
screenshot = 'None'
|
||||||
|
|
||||||
|
paste_tags = []
|
||||||
|
path_name = []
|
||||||
|
for path in l_pastes:
|
||||||
|
path_name.append(path.replace(PASTES_FOLDER, ''))
|
||||||
|
p_tags = r_serv_metadata.smembers('tag:'+path)
|
||||||
|
l_tags = []
|
||||||
|
for tag in p_tags:
|
||||||
|
complete_tag = tag
|
||||||
|
tag = tag.split('=')
|
||||||
|
if len(tag) > 1:
|
||||||
|
if tag[1] != '':
|
||||||
|
tag = tag[1][1:-1]
|
||||||
|
# no value
|
||||||
|
else:
|
||||||
|
tag = tag[0][1:-1]
|
||||||
|
# use for custom tags
|
||||||
|
else:
|
||||||
|
tag = tag[0]
|
||||||
|
l_tags.append( (tag, complete_tag) )
|
||||||
|
paste_tags.append(l_tags)
|
||||||
|
|
||||||
return render_template("showDomain.html", domain=onion_domain, last_check=last_check, first_seen=first_seen,
|
return render_template("showDomain.html", domain=onion_domain, last_check=last_check, first_seen=first_seen,
|
||||||
|
l_pastes=l_pastes, paste_tags=paste_tags, l_tags=l_tags, bootstrap_label=bootstrap_label,
|
||||||
|
path_name=path_name,
|
||||||
domain_paste=domain_paste, screenshot=screenshot)
|
domain_paste=domain_paste, screenshot=screenshot)
|
||||||
|
|
||||||
# ============= JSON ==============
|
# ============= JSON ==============
|
||||||
|
|
|
@ -15,9 +15,15 @@
|
||||||
<!-- JS -->
|
<!-- JS -->
|
||||||
<script type="text/javascript" src="{{ url_for('static', filename='js/dygraph-combined.js') }}"></script>
|
<script type="text/javascript" src="{{ url_for('static', filename='js/dygraph-combined.js') }}"></script>
|
||||||
<script language="javascript" src="{{ url_for('static', filename='js/jquery.js')}}"></script>
|
<script language="javascript" src="{{ url_for('static', filename='js/jquery.js')}}"></script>
|
||||||
<script src="{{ url_for('static', filename='js/jquery.flot.js') }}"></script>
|
<script src="/static//js/jquery.dataTables.min.js"></script>
|
||||||
<script src="{{ url_for('static', filename='js/jquery.flot.pie.js') }}"></script>
|
<script src="/static//js/dataTables.bootstrap.js"></script>
|
||||||
<script src="{{ url_for('static', filename='js/jquery.flot.time.js') }}"></script>
|
|
||||||
|
<style>
|
||||||
|
.test thead{
|
||||||
|
background: #d91f2d;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
@ -28,7 +34,8 @@
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|
||||||
<div class="col-md-5">
|
<div class="col-md-6">
|
||||||
|
<div class="row">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
|
@ -59,9 +66,36 @@
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<table class="test table table-striped table-bordered table-hover table-responsive " id="myTable_">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="max-width: 800px;">Crawled Pastes</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
|
||||||
|
{% for path in l_pastes %}
|
||||||
|
<tr>
|
||||||
|
<td><a target="_blank" href="{{ url_for('showsavedpastes.showsavedpaste') }}?paste={{path}}">{{ path_name[loop.index0] }}</a>
|
||||||
|
<div>
|
||||||
|
{% for tag in paste_tags[loop.index0] %}
|
||||||
|
<a href="{{ url_for('Tags.get_tagged_paste') }}?ltags={{ tag[1] }}">
|
||||||
|
<span class="label label-{{ bootstrap_label[loop.index0 % 5] }} pull-left">{{ tag[0] }}</span>
|
||||||
|
</a>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-7">
|
<div class="col-md-6">
|
||||||
<img src="{{ url_for('showsavedpastes.screenshot', filename=screenshot) }}" onError="this.onerror=null;this.src='{{ url_for('static', filename='image/AIL.png') }}';" style="width:100%;" />
|
<img src="{{ url_for('showsavedpastes.screenshot', filename=screenshot) }}" onError="this.onerror=null;this.src='{{ url_for('static', filename='image/AIL.png') }}';" style="width:100%;" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -74,6 +108,13 @@
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
activePage = "page-hiddenServices"
|
activePage = "page-hiddenServices"
|
||||||
$("#"+activePage).addClass("active");
|
$("#"+activePage).addClass("active");
|
||||||
|
table = $('#myTable_').DataTable(
|
||||||
|
{
|
||||||
|
"aLengthMenu": [[5, 10, 15, 20, -1], [5, 10, 15, 20, "All"]],
|
||||||
|
"iDisplayLength": 5,
|
||||||
|
"order": [[ 0, "desc" ]]
|
||||||
|
}
|
||||||
|
);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue