mirror of
https://github.com/lockfale/OSINT-Framework.git
synced 2026-09-06 09:47:45 +02:00
Backend (src/worker.js):
- Add POST /api/vote: upvote/downvote with toggle behavior, one vote per
session per tool, returns net score
- Add POST /api/report: flag tools as dead_link/paywalled/incorrect_info;
auto-creates GitHub issue via GitHub API when REPORT_THRESHOLD (3) unique
reports of the same type are received (requires GITHUB_TOKEN secret)
- Update GET /api/tool-stats to include votes { up, down, score }
- Extract validateCommon() and isRateLimited() helpers to reduce duplication
Frontend (public/js/arf.js):
- Replace static rating placeholder with _renderVoteUI(): renders thumbs
up/down buttons, reads cached vote from sessionStorage, fetches live score
async from /api/tool-stats
- Add _castVote(): fires POST /api/vote, updates button active state and
score display, persists user vote in sessionStorage
- Add _resetReportButtons() and _submitReport(): wire report buttons per
panel open, POST /api/report, show inline feedback message
HTML (public/index.html):
- Replace static rating span with vote row (thumbs up, score, thumbs down)
- Replace static GitHub report link with three report buttons + feedback div
CSS (public/css/panel.css):
- Add .vote-btn, .vote-score (.positive/.negative/.zero) styles
- Add .report-btn, .panel-report-feedback styles
- Remove old #panel-report-link styles (replaced by button row)
Co-Authored-By: Paperclip <noreply@paperclip.ing>
124 lines
5.3 KiB
HTML
124 lines
5.3 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
|
|
<!-- Viewport Settings -->
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
|
|
<link type="text/css" rel="stylesheet" href="css/arf.css"/>
|
|
<link type="text/css" rel="stylesheet" href="css/panel.css"/>
|
|
<script type="text/javascript" src="js/d3.min.js"></script>
|
|
<title>OSINT Framework</title>
|
|
</head>
|
|
<noscript>
|
|
<p>Sorry, Your browser does not support JavaScript! Activate JavaScript on your browser or look for a compatible
|
|
browser to use the site.</p>
|
|
</noscript>
|
|
<body>
|
|
<!-- Apply light-mode class immediately if stored preference is light -->
|
|
<script>
|
|
(function() {
|
|
if (localStorage.getItem("theme") === "light") {
|
|
document.body.classList.add("light-mode");
|
|
}
|
|
})();
|
|
</script>
|
|
<div id="body">
|
|
<div id="header">
|
|
OSINT Framework
|
|
<hr/>
|
|
</div>
|
|
<div id="search-container">
|
|
<input type="text" id="search-input" placeholder="Search tools..." autocomplete="off" aria-label="Search OSINT tools">
|
|
<div id="search-results" role="listbox" aria-label="Search results"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Tool details panel -->
|
|
<div id="panel-overlay"></div>
|
|
<div id="tool-panel" role="complementary" aria-label="Tool details">
|
|
<div id="panel-header">
|
|
<span id="panel-title"></span>
|
|
<button id="panel-close" aria-label="Close panel">✕</button>
|
|
</div>
|
|
<div id="panel-body">
|
|
<div id="panel-breadcrumb" class="empty"></div>
|
|
|
|
<div id="panel-badges" class="empty"></div>
|
|
|
|
<div id="panel-description-section" class="empty">
|
|
<span class="panel-section-label">Description</span>
|
|
<span id="panel-description"></span>
|
|
</div>
|
|
|
|
<div id="panel-usage-section" class="empty">
|
|
<span class="panel-section-label">Usage Context</span>
|
|
<span id="panel-usage"></span>
|
|
</div>
|
|
|
|
<div id="panel-opsec-section" class="empty">
|
|
<span class="panel-section-label">OPSEC Notes</span>
|
|
<span id="panel-opsec"></span>
|
|
</div>
|
|
|
|
<div id="panel-rating-section">
|
|
<span class="panel-section-label">Community Rating</span>
|
|
<div id="panel-vote-row">
|
|
<button id="vote-up" class="vote-btn" aria-label="Upvote" title="Upvote">👍</button>
|
|
<span id="vote-score" class="vote-score">0</span>
|
|
<button id="vote-down" class="vote-btn" aria-label="Downvote" title="Downvote">👎</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="panel-report-section">
|
|
<span class="panel-section-label">Report an Issue</span>
|
|
<div id="panel-report-buttons">
|
|
<button class="report-btn" data-type="dead_link">Dead link</button>
|
|
<button class="report-btn" data-type="paywalled">Paywalled</button>
|
|
<button class="report-btn" data-type="incorrect_info">Incorrect info</button>
|
|
</div>
|
|
<div id="panel-report-feedback" class="panel-report-feedback hidden"></div>
|
|
</div>
|
|
|
|
<div id="panel-cta-section" class="empty">
|
|
<a id="panel-open-tool" href="#" target="_blank" rel="noopener noreferrer">Open Tool →</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script src="js/arf.js"></script>
|
|
|
|
<div class="legend"><p>
|
|
<span class="badge badge-T">T</span> - Indicates a link to a tool that must be installed and run locally<br>
|
|
<span class="badge badge-D">D</span> - Google Dork, for more information: <a href="https://en.wikipedia.org/wiki/Google_hacking">Google Hacking</a><br>
|
|
<span class="badge badge-R">R</span> - Requires registration<br>
|
|
<span class="badge badge-M">M</span> - Indicates a URL that contains the search term and the URL itself must be edited manually<br>
|
|
</p>
|
|
<button id="theme-toggle" onclick="goDark()">Switch to light mode</button>
|
|
<script>
|
|
(function() {
|
|
var btn = document.getElementById("theme-toggle");
|
|
if (btn && localStorage.getItem("theme") === "light") {
|
|
btn.textContent = "Switch to dark mode";
|
|
}
|
|
})();
|
|
</script>
|
|
</div>
|
|
|
|
<h3>Notes</h3>
|
|
OSINT framework focused on gathering information from free tools or resources. The intention is to help people find free OSINT resources. Some of the sites included might require registration or offer more data for $$$, but you should be able to get at least a portion of the available information for no cost.<br>
|
|
|
|
<p>I originally created this framework with an information security point of view. Since then, the response from other fields and disciplines has been incredible. I would love to be able to include any other OSINT resources, especially from fields outside of infosec. Please let me know about anything that might be missing!</p>
|
|
|
|
<h3>For Update Notifications</h3>
|
|
Follow me on Twitter: <a href="https://twitter.com/jnordine">@jnordine</a><br>
|
|
Watch or star the project on Github: <a href="https://github.com/lockfale/osint-framework">https://github.com/lockfale/osint-framework</a>
|
|
|
|
<h3>Suggestions, Comments, Feedback</h3>
|
|
Feedback or new tool suggestions are extremely welcome! Please feel free to reach out on Twitter or submit an issue on Github.
|
|
|
|
</body>
|
|
|
|
</html>
|