Remove porn report category

This commit is contained in:
2024-10-25 11:24:19 +02:00
parent 5917222d86
commit 4059f45996
6 changed files with 29 additions and 29 deletions

View File

@@ -61,7 +61,6 @@ let set_status = async (action, report_type) => {
</div> </div>
<div class="type_list"> <div class="type_list">
<button on:click={() => {set_status("grant", "copyright")}}>copyright</button> <button on:click={() => {set_status("grant", "copyright")}}>copyright</button>
<button on:click={() => {set_status("grant", "porn")}}>porn</button>
<button on:click={() => {set_status("grant", "terrorism")}}>terrorism</button> <button on:click={() => {set_status("grant", "terrorism")}}>terrorism</button>
<button on:click={() => {set_status("grant", "gore")}}>gore</button> <button on:click={() => {set_status("grant", "gore")}}>gore</button>
<button on:click={() => {set_status("grant", "child_abuse")}}>child_abuse</button> <button on:click={() => {set_status("grant", "child_abuse")}}>child_abuse</button>

View File

@@ -16,7 +16,6 @@ let block_form = {
type: "radio", type: "radio",
radio_values: [ radio_values: [
"copyright", "copyright",
"porn",
"child_abuse", "child_abuse",
"zoophilia", "zoophilia",
"terrorism", "terrorism",

View File

@@ -13,7 +13,6 @@ const abuse_types = [
"malware", "malware",
"doxing", "doxing",
"revenge_porn", "revenge_porn",
"porn",
] ]
let loading = true let loading = true

View File

@@ -8,6 +8,7 @@ $: update_peers(peers)
let update_peers = (peers) => { let update_peers = (peers) => {
for (let peer of peers) { for (let peer of peers) {
peer.avg_network_total = peer.avg_network_tx + peer.avg_network_rx peer.avg_network_total = peer.avg_network_tx + peer.avg_network_rx
peer.usage_percent = (peer.avg_network_tx / peer.port_speed) * 100
peer.network_ratio = Math.max(peer.avg_network_tx, peer.avg_network_rx) / Math.min(peer.avg_network_tx, peer.avg_network_rx) peer.network_ratio = Math.max(peer.avg_network_tx, peer.avg_network_rx) / Math.min(peer.avg_network_tx, peer.avg_network_rx)
if (peer.network_ratio === NaN) { if (peer.network_ratio === NaN) {
peer.network_ratio = 1 peer.network_ratio = 1
@@ -55,7 +56,6 @@ let sort = (field) => {
<thead> <thead>
<tr> <tr>
<td><SortButton field="hostname" active_field={sort_field} asc={asc} sort_func={sort}>Hostname</SortButton></td> <td><SortButton field="hostname" active_field={sort_field} asc={asc} sort_func={sort}>Hostname</SortButton></td>
<td><SortButton field="ip" active_field={sort_field} asc={asc} sort_func={sort}>Address</SortButton></td>
<td><SortButton field="unreachable_count" active_field={sort_field} asc={asc} sort_func={sort}>Err</SortButton></td> <td><SortButton field="unreachable_count" active_field={sort_field} asc={asc} sort_func={sort}>Err</SortButton></td>
<td><SortButton field="load_15_min" active_field={sort_field} asc={asc} sort_func={sort}>Load</SortButton></td> <td><SortButton field="load_15_min" active_field={sort_field} asc={asc} sort_func={sort}>Load</SortButton></td>
<td><SortButton field="latency" active_field={sort_field} asc={asc} sort_func={sort}>Ping</SortButton></td> <td><SortButton field="latency" active_field={sort_field} asc={asc} sort_func={sort}>Ping</SortButton></td>
@@ -63,6 +63,7 @@ let sort = (field) => {
<td><SortButton field="avg_network_rx" active_field={sort_field} asc={asc} sort_func={sort}>RX</SortButton></td> <td><SortButton field="avg_network_rx" active_field={sort_field} asc={asc} sort_func={sort}>RX</SortButton></td>
<td><SortButton field="network_ratio" active_field={sort_field} asc={asc} sort_func={sort}>Rat</SortButton></td> <td><SortButton field="network_ratio" active_field={sort_field} asc={asc} sort_func={sort}>Rat</SortButton></td>
<td><SortButton field="avg_network_total" active_field={sort_field} asc={asc} sort_func={sort}>Tot</SortButton></td> <td><SortButton field="avg_network_total" active_field={sort_field} asc={asc} sort_func={sort}>Tot</SortButton></td>
<td><SortButton field="usage_percent" active_field={sort_field} asc={asc} sort_func={sort}>Use%</SortButton></td>
<td><SortButton field="free_space" active_field={sort_field} asc={asc} sort_func={sort}>Free</SortButton></td> <td><SortButton field="free_space" active_field={sort_field} asc={asc} sort_func={sort}>Free</SortButton></td>
<td><SortButton field="min_free_space" active_field={sort_field} asc={asc} sort_func={sort}>Min free</SortButton></td> <td><SortButton field="min_free_space" active_field={sort_field} asc={asc} sort_func={sort}>Min free</SortButton></td>
</tr> </tr>
@@ -77,7 +78,6 @@ let sort = (field) => {
animate:flip={{duration: 1000}} animate:flip={{duration: 1000}}
> >
<td>{peer.hostname}</td> <td>{peer.hostname}</td>
<td>{peer.ip}</td>
<td>{peer.unreachable_count}</td> <td>{peer.unreachable_count}</td>
<td>{peer.load_1_min.toFixed(1)} / {peer.load_5_min.toFixed(1)} / {peer.load_15_min.toFixed(1)}</td> <td>{peer.load_1_min.toFixed(1)} / {peer.load_5_min.toFixed(1)} / {peer.load_15_min.toFixed(1)}</td>
<td>{(peer.latency/1000).toFixed(3)}</td> <td>{(peer.latency/1000).toFixed(3)}</td>
@@ -85,13 +85,14 @@ let sort = (field) => {
<td>{formatDataVolume(peer.avg_network_rx, 3)}/s</td> <td>{formatDataVolume(peer.avg_network_rx, 3)}/s</td>
<td>{peer.network_ratio.toFixed(2)}</td> <td>{peer.network_ratio.toFixed(2)}</td>
<td>{formatDataVolume(peer.avg_network_total, 3)}/s</td> <td>{formatDataVolume(peer.avg_network_total, 3)}/s</td>
<td>{Math.round(peer.usage_percent)}%</td>
<td>{formatDataVolume(peer.free_space, 4)}</td> <td>{formatDataVolume(peer.free_space, 4)}</td>
<td>{formatDataVolume(peer.min_free_space, 3)}</td> <td>{formatDataVolume(peer.min_free_space, 3)}</td>
</tr> </tr>
{/each} {/each}
<tr> <tr>
<td colspan="2">Total ({peers.length})</td> <td>Total ({peers.length})</td>
<td>{peers.reduce((acc, val) => acc += val.unreachable_count, 0)}</td> <td>{peers.reduce((acc, val) => acc += val.unreachable_count, 0)}</td>
<td> <td>
{peers.reduce((acc, val) => acc += val.load_1_min, 0).toFixed(1)} / {peers.reduce((acc, val) => acc += val.load_1_min, 0).toFixed(1)} /
@@ -103,11 +104,12 @@ let sort = (field) => {
<td>{formatDataVolume(peers.reduce((acc, val) => acc += val.avg_network_rx, 0), 3)}/s</td> <td>{formatDataVolume(peers.reduce((acc, val) => acc += val.avg_network_rx, 0), 3)}/s</td>
<td>{peers.reduce((acc, val) => acc += val.network_ratio, 0).toFixed(2)}</td> <td>{peers.reduce((acc, val) => acc += val.network_ratio, 0).toFixed(2)}</td>
<td>{formatDataVolume(peers.reduce((acc, val) => acc += val.avg_network_total, 0), 3)}/s</td> <td>{formatDataVolume(peers.reduce((acc, val) => acc += val.avg_network_total, 0), 3)}/s</td>
<td>{Math.round(peers.reduce((acc, val) => acc += val.usage_percent, 0))}%</td>
<td>{formatDataVolume(peers.reduce((acc, val) => acc += val.free_space, 0), 4)}</td> <td>{formatDataVolume(peers.reduce((acc, val) => acc += val.free_space, 0), 4)}</td>
<td>{formatDataVolume(peers.reduce((acc, val) => acc += val.min_free_space, 0), 3)}</td> <td>{formatDataVolume(peers.reduce((acc, val) => acc += val.min_free_space, 0), 3)}</td>
</tr> </tr>
<tr> <tr>
<td colspan="2">Average</td> <td>Average</td>
<td></td> <td></td>
<td> <td>
{(peers.reduce((acc, val) => acc += val.load_1_min, 0) / peers.length).toFixed(1)} / {(peers.reduce((acc, val) => acc += val.load_1_min, 0) / peers.length).toFixed(1)} /
@@ -119,6 +121,7 @@ let sort = (field) => {
<td>{formatDataVolume(peers.reduce((acc, val) => acc += val.avg_network_rx, 0) / peers.length, 3)}/s</td> <td>{formatDataVolume(peers.reduce((acc, val) => acc += val.avg_network_rx, 0) / peers.length, 3)}/s</td>
<td>{(peers.reduce((acc, val) => acc += val.network_ratio, 0) / peers.length).toFixed(2)}</td> <td>{(peers.reduce((acc, val) => acc += val.network_ratio, 0) / peers.length).toFixed(2)}</td>
<td>{formatDataVolume(peers.reduce((acc, val) => acc += val.avg_network_total, 3) / peers.length, 4)}/s</td> <td>{formatDataVolume(peers.reduce((acc, val) => acc += val.avg_network_total, 3) / peers.length, 4)}/s</td>
<td>{Math.round(peers.reduce((acc, val) => acc += val.usage_percent, 0) / peers.length)}%</td>
<td>{formatDataVolume(peers.reduce((acc, val) => acc += val.free_space, 0) / peers.length, 4)}</td> <td>{formatDataVolume(peers.reduce((acc, val) => acc += val.free_space, 0) / peers.length, 4)}</td>
<td>{formatDataVolume(peers.reduce((acc, val) => acc += val.min_free_space, 0) / peers.length, 3)}</td> <td>{formatDataVolume(peers.reduce((acc, val) => acc += val.min_free_space, 0) / peers.length, 3)}</td>
</tr> </tr>

View File

@@ -31,38 +31,41 @@ const filter_app = type => {
const abuse_categories = [ const abuse_categories = [
{ {
type: "porn", name: "Porn", type: "terrorism",
desc: `Sexually explicit videos or images`, name: "Terrorism",
filter: filter_visual,
}, {
type: "terrorism", name: "Terrorism",
desc: `Videos, images or audio fragments showing or promoting the use desc: `Videos, images or audio fragments showing or promoting the use
of intentional violence to achieve political aims`, of intentional violence to achieve political aims`,
filter: filter_audiovisual, filter: filter_audiovisual,
}, { }, {
type: "gore", name: "Gore", type: "gore",
name: "Gore",
desc: `Graphic and shocking videos or images depicting severe harm to desc: `Graphic and shocking videos or images depicting severe harm to
humans (or animals)`, humans (or animals)`,
filter: filter_visual, filter: filter_visual,
}, { }, {
type: "child_abuse", name: "Child abuse", type: "child_abuse",
name: "Child abuse",
desc: `Videos or images depicting inappropriate touching or nudity of desc: `Videos or images depicting inappropriate touching or nudity of
children under 18 years old`, children under 18 years old`,
}, { }, {
type: "zoophilia", name: "Zoophilia", type: "zoophilia",
name: "Zoophilia",
desc: `Videos or images depicting of sexual acts being performed on desc: `Videos or images depicting of sexual acts being performed on
animals`, animals`,
}, { }, {
type: "revenge_porn", name: "Revenge porn", type: "revenge_porn",
desc: `The distribution of sexually explicit images or videos of name: "Revenge porn",
individuals without their consent`, desc: `Sexually explicit images or videos of individuals without their
consent and blackmail content`,
}, { }, {
type: "doxing", name: "Doxing", type: "doxing",
name: "Doxing",
desc: `Personally identifiable information being shared without the desc: `Personally identifiable information being shared without the
consent of the owner. This includes things like passport scans, consent of the owner. This includes things like passport scans,
e-mail addresses, telephone numbers and passwords`, e-mail addresses, telephone numbers and passwords`,
}, { }, {
type: "malware", name: "Malware", type: "malware",
name: "Malware",
desc: `Software programs designed to cause harm to computer systems`, desc: `Software programs designed to cause harm to computer systems`,
filter: filter_app, filter: filter_app,
}, },
@@ -197,8 +200,7 @@ const report_description = () => {
<div class="highlight_yellow" style="text-align: initial;"> <div class="highlight_yellow" style="text-align: initial;">
<p> <p>
The child abuse category is only for cases where real The child abuse category is only for cases where real
children were abused. This is not for fictional works. Use children were abused. This is not for fictional works.
the 'porn' category in case of animated porn.
</p> </p>
</div> </div>
<br/> <br/>

View File

@@ -37,13 +37,11 @@ let file = {
{/if} {/if}
</p> </p>
{#if file.abuse_type !== "porn"}
<p> <p>
Pixeldrain has zero tolerance towards abuse. The IP address this file Pixeldrain has zero tolerance towards abuse. The IP address this file
originated from has been banned and is no longer able to upload files to originated from has been banned and is no longer able to upload files to
pixeldrain. pixeldrain.
</p> </p>
{/if}
</TextBlock> </TextBlock>
{#if file.can_download} {#if file.can_download}