mirror of
https://github.com/ail-project/ail-framework.git
synced 2024-11-23 14:37:17 +00:00
1379ef705a
AIL is a modular framework to analyse potential information leak from unstructured data source like pastes from Past ebin or similar services. AIL framework is flexible and can be extended to support other functionalities to mine sen sitive information
209 lines
7.9 KiB
HTML
209 lines
7.9 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
<title>Analysis Information Leak framework Dashboard</title>
|
|
|
|
<!-- Core CSS -->
|
|
<link href="{{ url_for('static', filename='css/bootstrap.min.css') }}" rel="stylesheet">
|
|
<link href="{{ url_for('static', filename='font-awesome-4.1.0/css/font-awesome.css') }}" rel="stylesheet">
|
|
<link href="{{ url_for('static', filename='css/sb-admin-2.css') }}" rel="stylesheet">
|
|
<link href="{{ url_for('static', filename='css/dygraph_gallery.css') }}" rel="stylesheet" type="text/css" />
|
|
<!-- JS -->
|
|
<script type="text/javascript" src="{{ url_for('static', filename='js/dygraph-combined.js') }}"></script>
|
|
<script src="{{ url_for('static', filename='js/jquery-1.4.2.js') }}"></script>
|
|
<script language="javascript" src="{{ url_for('static', filename='js/jquery.js')}}"></script>
|
|
|
|
</head>
|
|
<body>
|
|
|
|
<div id="wrapper">
|
|
<nav class="navbar navbar-default navbar-static-top" role="navigation" style="margin-bottom: 0">
|
|
<div class="navbar-header">
|
|
<a class="navbar-brand" href="{{ url_for('index') }}">Analysis Information Leak framework.</a>
|
|
</div>
|
|
<!-- /.navbar-top-links -->
|
|
<div class="navbar-default sidebar" role="navigation">
|
|
<div class="sidebar-collapse">
|
|
<ul class="nav" id="side-menu">
|
|
<li class="sidebar-search">
|
|
<div class="input-group custom-search-form">
|
|
<input type="text" class="form-control" placeholder="Search Paste">
|
|
<span class="input-group-btn">
|
|
<button class="btn btn-default" type="button">
|
|
<i class="fa fa-search"></i>
|
|
</button>
|
|
</span>
|
|
</div>
|
|
<!-- /input-group -->
|
|
</li>
|
|
<li>
|
|
<a href="{{ url_for('index') }}"><i class="fa fa-dashboard fa-fw"></i> Dashboard</a>
|
|
</li>
|
|
<li>
|
|
<a href="#"><i class="fa fa-bar-chart-o fa-fw"></i> Charts<span class="fa arrow"></span></a>
|
|
<ul class="nav nav-second-level">
|
|
<li>
|
|
<a href="{{ url_for('wordstrending') }}">WordsTrendings</a>
|
|
</li>
|
|
<li>
|
|
<a href="{{ url_for('monitoring') }}">Realtime_Queues</a>
|
|
</li>
|
|
</ul>
|
|
<!-- /.nav-second-level -->
|
|
</li>
|
|
</ul>
|
|
<!-- /#side-menu -->
|
|
</div>
|
|
<!-- /.sidebar-collapse -->
|
|
</div>
|
|
<!-- /.navbar-static-side -->
|
|
</nav>
|
|
<div id="page-wrapper">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<h1 class="page-header">Wordtrending</h1>
|
|
</div>
|
|
<!-- /.col-lg-12 -->
|
|
</div>
|
|
<!-- /.row -->
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="panel panel-default">
|
|
<div class="panel-heading">
|
|
<i class="fa fa-bar-chart-o fa-fw"></i> Words Trend
|
|
<div class="pull-right">
|
|
<div class="btn-group">
|
|
<button type="button" class="btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown">
|
|
Actions
|
|
<span class="caret"></span>
|
|
</button>
|
|
<ul class="dropdown-menu pull-right" role="menu">
|
|
<li><a href="#" id="linear">Linear Scale</a>
|
|
</li>
|
|
<li><a href="#" id="log">Log Scale</a>
|
|
</li>
|
|
<li><a href="#" id="unzoom" onclick="unzoomGraph()">Unzoom</a>
|
|
</li>
|
|
<li class="divider"></li>
|
|
<li><a href="#" id="edit_graph">Edit graph words</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- /.panel-heading -->
|
|
<div class="panel-body">
|
|
<!-- <div id="WordTrending" style="width:100%;"></div> -->
|
|
<div id="WordTrending" style="width:100%; height:800px;"></div>
|
|
</div>
|
|
<!-- /.panel-body -->
|
|
</div>
|
|
</div>
|
|
<!-- /.row -->
|
|
</div>
|
|
<!-- /#page-wrapper -->
|
|
<script type="text/javascript">
|
|
g2 = new Dygraph(
|
|
document.getElementById("WordTrending"),
|
|
// path to CSV file
|
|
"{{ url_for('static', filename='csv/wordstrendingdata.csv') }}",
|
|
//"../csv/wordstrendingdata.csv",
|
|
//window.csv,
|
|
{
|
|
rollPeriod: 1,
|
|
showRoller: true,
|
|
//drawPoints: true,
|
|
//fillGraph: true,
|
|
logscale: true,
|
|
animatedZooms: true,
|
|
labelsKMB: true,
|
|
highlightCircleSize: 3,
|
|
highlightSeriesOpts: {
|
|
strokeWidth: 3,
|
|
strokeBorderWidth: 1,
|
|
highlightCircleSize: 5,
|
|
},
|
|
underlayCallback: function(canvas, area, g) {
|
|
canvas.fillStyle = "rgba(255, 193, 37, 0.5)";
|
|
|
|
function highlight_period(x_start, x_end) {
|
|
var canvas_left_x = g.toDomXCoord(x_start);
|
|
var canvas_right_x = g.toDomXCoord(x_end);
|
|
var canvas_width = canvas_right_x - canvas_left_x;
|
|
canvas.fillRect(canvas_left_x, area.y, canvas_width, area.h);
|
|
}
|
|
|
|
var min_data_x = g.getValue(0,0);
|
|
var max_data_x = g.getValue(g.numRows()-1,0);
|
|
|
|
// get day of week
|
|
var d = new Date(min_data_x);
|
|
var dow = d.getUTCDay();
|
|
var ds = d.toUTCString();
|
|
|
|
var w = min_data_x;
|
|
// starting on Sunday is a special case
|
|
if (dow == 0) {
|
|
highlight_period(w,w+12*3600*1000);
|
|
}
|
|
// find first saturday
|
|
while (dow != 5) {
|
|
w += 24*3600*1000;
|
|
d = new Date(w);
|
|
dow = d.getUTCDay();
|
|
}
|
|
|
|
// shift back 1/2 day to center highlight around the point for the day
|
|
w -= 12*3600*1000;
|
|
while (w < max_data_x) {
|
|
var start_x_highlight = w;
|
|
var end_x_highlight = w + 2*24*3600*1000;
|
|
// make sure we don't try to plot outside the graph
|
|
if (start_x_highlight < min_data_x) {
|
|
start_x_highlight = min_data_x;
|
|
}
|
|
if (end_x_highlight > max_data_x) {
|
|
end_x_highlight = max_data_x;
|
|
}
|
|
highlight_period(start_x_highlight,end_x_highlight);
|
|
// calculate start of highlight for next Saturday
|
|
w += 7*24*3600*1000;
|
|
}
|
|
}
|
|
});
|
|
|
|
onclick = function(ev) {
|
|
if (g2.isSeriesLocked()) {
|
|
g2.clearSelection();
|
|
}
|
|
else {
|
|
g2.setSelection(g2.getSelection(), g2.getHighlightSeries(), true);
|
|
}
|
|
};
|
|
g2.updateOptions({clickCallback: onclick}, true);
|
|
|
|
var linear = document.getElementById("linear");
|
|
var log = document.getElementById("log");
|
|
linear.onclick = function() { setLog(false); }
|
|
log.onclick = function() { setLog(true); }
|
|
var setLog = function(val) {
|
|
g2.updateOptions({ logscale: val });
|
|
linear.disabled = !val;
|
|
log.disabled = val;
|
|
}
|
|
function unzoomGraph() {
|
|
g2.updateOptions({
|
|
dateWindow:null,
|
|
valueRange:null
|
|
});
|
|
}
|
|
</script>
|
|
</div>
|
|
<script src="{{ url_for('static', filename='js/bootstrap.min.js') }}"></script>
|
|
</body>
|
|
|
|
</html>
|