Repository Analysis

9001/copyparty

Portable file server with accelerated resumable uploads, dedup, WebDAV, SFTP, FTP, TFTP, zeroconf, media indexer, thumbnails++ all in one file

6.2 Low AI signal View on GitHub
6.2
Adjusted Score
6.2
Raw Score
100%
Time Factor
2026-05-26
Last Push
45,034
Stars
Python
Language
128,854
Lines of Code
357
Files
702
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 5HIGH 16MEDIUM 44LOW 637

Pattern Findings

702 matches across 14 categories. Click a row to expand file-level details.

Unused Imports226 hits · 221 pts
SeverityFileLineSnippet
LOWsetup.py3
LOWbin/partyfuse-streaming.py2
LOWbin/partyfuse-streaming.py2
LOWbin/u2c.py2
LOWbin/u2c.py2
LOWbin/u2c.py1696
LOWbin/partyfuse2.py2
LOWbin/partyfuse2.py2
LOWbin/partyfuse2.py10
LOWbin/partyfuse2.py23
LOWbin/mtag/media-hash.py6
LOWbin/hooks/msg-log.py4
LOWbin/hooks/msg-log.py4
LOWbin/hooks/reject-ramdisk.py3
LOWbin/hooks/reject-ramdisk.py7
LOWbin/handlers/caching-proxy.py11
LOWtests/test_dedup.py3
LOWtests/test_dedup.py3
LOWtests/test_dedup.py9
LOWtests/test_utils.py3
LOWtests/test_utils.py3
LOWtests/test_metrics.py3
LOWtests/test_metrics.py3
LOWtests/test_metrics.py9
LOWtests/util.py3
LOWtests/util.py3
LOWtests/test_httpcli.py3
LOWtests/test_httpcli.py3
LOWtests/test_dots.py3
LOWtests/test_dots.py3
LOWtests/test_cp.py3
LOWtests/test_cp.py3
LOWtests/test_cp.py8
LOWtests/test_idp.py3
LOWtests/test_idp.py3
LOWtests/test_mv.py3
LOWtests/test_mv.py3
LOWtests/test_dxml.py3
LOWtests/test_dxml.py3
LOWtests/test_webdav.py3
LOWtests/test_webdav.py3
LOWtests/test_webdav.py9
LOWtests/test_hooks.py3
LOWtests/test_hooks.py3
LOWtests/test_hooks.py8
LOWtests/test_shr.py3
LOWtests/test_shr.py3
LOWtests/test_shr.py12
LOWtests/test_vfs.py3
LOWtests/test_vfs.py3
LOWtests/test_vfs.py12
LOWcontrib/package/nix/partftpy/update.py10
LOWscripts/sfx.py3
LOWscripts/sfx.py3
LOWscripts/uncomment.py3
LOWscripts/uncomment.py3
LOWscripts/strip_hints/a.py2
LOWscripts/strip_hints/a.py2
LOWscripts/py2/queue/__init__.py2
LOWscripts/py2/queue/__init__.py2
166 more matches not shown…
Deep Nesting219 hits · 176 pts
SeverityFileLineSnippet
LOWbin/partyjournal.py71
LOWbin/dbtool.py50
LOWbin/partyfuse-streaming.py294
LOWbin/partyfuse-streaming.py332
LOWbin/partyfuse-streaming.py613
LOWbin/partyfuse-streaming.py820
LOWbin/partyfuse.py262
LOWbin/partyfuse.py691
LOWbin/partyfuse.py727
LOWbin/partyfuse.py933
LOWbin/u2c.py629
LOWbin/u2c.py653
LOWbin/u2c.py737
LOWbin/u2c.py804
LOWbin/u2c.py896
LOWbin/u2c.py1532
LOWbin/u2c.py1040
LOWbin/u2c.py1093
LOWbin/u2c.py1196
LOWbin/u2c.py1339
LOWbin/u2c.py1460
LOWbin/partyfuse2.py378
LOWbin/mtag/geotag.py23
LOWbin/mtag/cksum.py28
LOWbin/mtag/very-bad-idea.py115
LOWbin/mtag/yt-ipr.py99
LOWbin/hooks/xiu-sha.py68
LOWbin/hooks/msg-log.py74
LOWbin/handlers/caching-proxy.py14
LOWtests/test_dedup.py100
LOWtests/util.py66
LOWtests/test_httpcli.py35
LOWtests/test_cp.py27
LOWtests/test_mv.py50
LOWtests/test_hooks.py81
LOWtests/test_vfs.py60
LOWscripts/fusefuzz.py34
LOWscripts/sfx.py164
LOWscripts/sfx.py270
LOWscripts/uncomment.py17
LOWscripts/help2html.py36
LOWscripts/speedtest-fs.py95
LOWscripts/test/smoketest.py63
LOWscripts/test/smoketest.py45
LOWscripts/test/race.py45
LOWcopyparty/metrics.py19
LOWcopyparty/th_srv.py258
LOWcopyparty/th_srv.py397
LOWcopyparty/th_srv.py531
LOWcopyparty/th_srv.py904
LOWcopyparty/th_srv.py1457
LOWcopyparty/authsrv.py3968
LOWcopyparty/authsrv.py4055
LOWcopyparty/authsrv.py703
LOWcopyparty/authsrv.py765
LOWcopyparty/authsrv.py951
LOWcopyparty/authsrv.py1000
LOWcopyparty/authsrv.py1179
LOWcopyparty/authsrv.py1384
LOWcopyparty/authsrv.py1578
159 more matches not shown…
Excessive Try-Catch Wrapping139 hits · 147 pts
SeverityFileLineSnippet
LOWbin/partyfuse-streaming.py977 except Exception as ex:
MEDIUMbin/partyfuse-streaming.py965def _open(self, path):
LOWbin/partyfuse.py374 except Exception as ex:
LOWbin/partyfuse.py1087 except Exception as ex:
MEDIUMbin/partyfuse.py1075def _open(self, path):
MEDIUMbin/u2c.py115def run(self):
LOWbin/u2c.py434 except Exception as ex:
LOWbin/u2c.py608 except Exception as ex:
LOWbin/u2c.py619 except Exception as ex:
LOWbin/u2c.py645 except Exception as ex:
LOWbin/u2c.py855 except Exception as ex:
LOWbin/u2c.py1225 except Exception as ex:
LOWbin/u2c.py1500 except Exception as ex:
LOWbin/hooks/podcast-normalizer.py120 except Exception as ex:
LOWbin/hooks/usb-eject.py60 except Exception as ex:
MEDIUMbin/hooks/usb-eject.py35def main():
LOWtests/util.py117 except Exception as ex:
LOWcontrib/zfs-tune.py73 except Exception:
MEDIUMcontrib/zfs-tune.py50def set_pagesize(db_path):
LOWscripts/uncomment.py95 except Exception as ex:
LOWscripts/uncomment.py100 except Exception as ex:
LOWscripts/strip_hints/a.py39 except Exception as ex:
LOWcopyparty/metrics.py154 except Exception as ex:
LOWcopyparty/metrics.py231 except Exception as ex:
LOWcopyparty/th_srv.py198except Exception as e:
LOWcopyparty/th_srv.py603 except Exception as ex:
LOWcopyparty/th_srv.py614 except Exception as ex:
LOWcopyparty/th_srv.py629 except Exception as ex:
LOWcopyparty/th_srv.py692 except Exception as ex:
LOWcopyparty/th_srv.py1417 except Exception as ex:
LOWcopyparty/authsrv.py1029 except Exception as ex:
LOWcopyparty/authsrv.py2835 except Exception as ex:
LOWcopyparty/authsrv.py3122 except Exception as ex:
LOWcopyparty/u2idx.py355 except Exception as ex:
MEDIUMcopyparty/util.py673def expat_ver() -> str:
MEDIUMcopyparty/util.py4432def termsize() -> tuple[int, int]:
LOWcopyparty/util.py1366 except Exception as ex:
LOWcopyparty/util.py3047 except Exception as ex:
LOWcopyparty/util.py3096 except Exception as ex:
LOWcopyparty/util.py3289 except Exception as ex:
LOWcopyparty/util.py3309 except Exception as ex:
LOWcopyparty/util.py3458 except Exception as ex:
LOWcopyparty/util.py3493 except Exception as ex:
LOWcopyparty/util.py3506 except Exception as ex:
LOWcopyparty/util.py3512 except Exception as ex:
LOWcopyparty/util.py3631 except Exception as ex:
LOWcopyparty/util.py4001 except Exception as ex:
LOWcopyparty/util.py4287 except Exception as ex:
LOWcopyparty/util.py4501 except Exception as ex:
LOWcopyparty/util.py4526 except Exception as ex:
LOWcopyparty/util.py773except Exception as ex:
LOWcopyparty/sftpd.py772 except Exception as ex:
LOWcopyparty/sftpd.py775 except Exception as ex2:
LOWcopyparty/sftpd.py818 except Exception as ex:
LOWcopyparty/sftpd.py843 except Exception as ex:
MEDIUMcopyparty/sftpd.py264def stat(self):
LOWcopyparty/httpcli.py564 except Exception as ex:
LOWcopyparty/httpcli.py901 except Exception as ex:
LOWcopyparty/httpcli.py2367 except Exception as ex:
LOWcopyparty/httpcli.py2692 except Exception as ex:
79 more matches not shown…
Hallucination Indicators5 hits · 50 pts
SeverityFileLineSnippet
CRITICALtests/test_dedup.py53 self.conn.hsrv.hub.up2k.shutdown()
CRITICALtests/test_metrics.py38 self.conn.hsrv.hub.up2k.shutdown()
CRITICALtests/test_cp.py47 self.conn.hsrv.hub.up2k.shutdown()
CRITICALtests/test_mv.py44 self.conn.hsrv.hub.up2k.shutdown()
CRITICALcopyparty/ftpd.py372 for vn in self.hub.asrv.vfs.all_vols.values():
Over-Commented Block47 hits · 47 pts
SeverityFileLineSnippet
LOWbin/partyfuse-streaming.py181 continue
LOWbin/partyfuse.py221# [windows/mty/msys2] /mingw64/bin/python3 /c/Users/ed/dev/copyparty/bin/partyfuse.py q: http://192.168.1.159:1234/
LOWbin/mtag/install-deps.sh1#!/bin/bash
LOWbin/mtag/res/twitter-unmute.user.js1// ==UserScript==
LOWbin/hooks/msg-log.py41 flags:
LOWbin/hooks/reloc-by-ext.py61 # this function must end by printing the action to perform;
LOWbin/handlers/404-to-fail2ban.py1# /!\ Warning: be careful, as webdav clients often generate a large number of 404 requets.
LOWcontrib/setup-ashell.sh1#!/bin/bash
LOWcontrib/plugins/graft-thumbs.js1// USAGE:
LOWcontrib/plugins/minimal-up2k.js41#u2conf {margin:5em auto 0 auto !important}
LOWcontrib/plugins/quickmove.js1"use strict";
LOWscripts/tl.js21// here is the pairs of "text-identifier": "text-to-translate"
LOWscripts/copyparty-repack.sh1#!/bin/bash
LOWscripts/copyparty-repack.sh21# 353975 copyparty-extras/sfx-ent/copyparty-sfx.py
LOWscripts/sfx.py1#!/usr/bin/env python3
LOWscripts/sfx.py521# skip 1
LOWscripts/profile.py21 raise Exception()
LOWscripts/make-sfx.sh1#!/bin/bash
LOWscripts/make-sfx.sh21# for example `lang eng` or `lang eng|nor`
LOWscripts/make-sfx.sh41#
LOWscripts/make-sfx.sh61#
LOWscripts/bench/filehash.sh1#!/bin/bash
LOWscripts/bench/filehash.sh61##
LOWscripts/bench/filehash.sh81# 2576 @ Ryzen 7 5800X (cpp 1.9.5, py 3.11.7, win10-ltsc-1809-17763.4974) // --hash-mt=8 (hello??)
LOWscripts/docker/base/build-no265.sh81
LOW…pts/docker/base/patch/ffmpeg/libavcodec/aacsbr_fixed.c1// just the signatures from the original file; all bodies/logic removed
LOWscripts/docker/base/patch/ffmpeg/libavcodec/aacsbr.c1// just the signatures from the original file; all bodies/logic removed
LOWscripts/docker/base/patch/ffmpeg/libavcodec/aacps.c1// just the signatures from the original file; all bodies/logic removed
LOWscripts/deps-docker/genprism.sh21 # antlr4
LOWscripts/deps-docker/genprism.sh41 basic
LOWscripts/deps-docker/genprism.sh61 # cilkcpp
LOWscripts/deps-docker/genprism.sh81 # django
LOWscripts/deps-docker/genprism.sh101 # ftl
LOWscripts/deps-docker/genprism.sh121 # haxe
LOWscripts/deps-docker/genprism.sh141 # jexl
LOWscripts/deps-docker/genprism.sh161 # liquid
LOWscripts/deps-docker/genprism.sh181 moonscript
LOWscripts/deps-docker/genprism.sh201 # pascal
LOWscripts/deps-docker/genprism.sh221 # pure
LOWscripts/deps-docker/genprism.sh241 # roboconf
LOWscripts/deps-docker/genprism.sh261 sql
LOWscripts/deps-docker/genprism.sh281 typescript
LOWcopyparty/authsrv.py81## * deletion of expired files, running on a timer
LOWcopyparty/web/browser.css1841}
LOWcopyparty/web/browser.css2041#seldoc.sel {
LOWcopyparty/web/a/partyfuse.py221# [windows/mty/msys2] /mingw64/bin/python3 /c/Users/ed/dev/copyparty/bin/partyfuse.py q: http://192.168.1.159:1234/
LOWcopyparty/stolen/ifaddr/_shared.py81
Cross-File Repetition8 hits · 40 pts
SeverityFileLineSnippet
HIGHbin/partyfuse-streaming.py0,-------------------------------, g1>=c1, g2<=c2 |cache1 cache2| buf[g1-c1:(g1-c1)+(g2-g1)] `---------------------------
HIGHbin/partyfuse.py0,-------------------------------, g1>=c1, g2<=c2 |cache1 cache2| buf[g1-c1:(g1-c1)+(g2-g1)] `---------------------------
HIGHbin/partyfuse2.py0,-------------------------------, g1>=c1, g2<=c2 |cache1 cache2| buf[g1-c1:(g1-c1)+(g2-g1)] `---------------------------
HIGHcopyparty/web/a/partyfuse.py0,-------------------------------, g1>=c1, g2<=c2 |cache1 cache2| buf[g1-c1:(g1-c1)+(g2-g1)] `---------------------------
HIGHbin/u2c.py0non-recursive listing of directory contents, along with stat() info
HIGHbin/u2c.py0non-recursive listing of directory contents, along with stat() info
HIGHcopyparty/web/a/u2c.py0non-recursive listing of directory contents, along with stat() info
HIGHcopyparty/web/a/u2c.py0non-recursive listing of directory contents, along with stat() info
Dead Code19 hits · 38 pts
SeverityFileLineSnippet
MEDIUMbin/partyfuse-streaming.py115
MEDIUMbin/partyfuse-streaming.py116
MEDIUMbin/partyfuse-streaming.py139
MEDIUMbin/partyfuse-streaming.py142
MEDIUMbin/partyfuse-streaming.py148
MEDIUMbin/partyfuse-streaming.py151
MEDIUMbin/partyfuse-streaming.py850
MEDIUMbin/partyfuse-streaming.py851
MEDIUMbin/partyfuse-streaming.py871
MEDIUMbin/partyfuse.py961
MEDIUMbin/partyfuse.py962
MEDIUMbin/partyfuse.py982
MEDIUMbin/partyfuse2.py134
MEDIUMbin/partyfuse2.py137
MEDIUMbin/partyfuse2.py143
MEDIUMbin/partyfuse2.py146
MEDIUMcopyparty/web/a/partyfuse.py961
MEDIUMcopyparty/web/a/partyfuse.py962
MEDIUMcopyparty/web/a/partyfuse.py982
Cross-Language Confusion8 hits · 32 pts
SeverityFileLineSnippet
HIGHbin/partyfuse-streaming.py365 tid, meth, path, c.rx_path if c else "(null)"
HIGHbin/partyfuse.py34 awk '/-BEGIN CERTIFICATE-/ {a=1} a; /-END CERTIFICATE-/{exit}' <(openssl s_client -connect 127.0.0.1:3923 </dev/null 2
HIGHbin/mtag/very-bad-idea.py53wmctrl -r :ACTIVE: -b toggle,above || true
HIGHbin/mtag/very-bad-idea.py61 sleep 7.27 || break
HIGHscripts/tl.py54 LANGN.push([my_lang, Ls[my_lang].tt]);
HIGHscripts/help2html.py12./copyparty-sfx.py --help$a 2>/dev/null; printf '\n\n\n%0139d\n\n\n'; done # xfce4-terminal @ 140x43
HIGHcopyparty/th_srv.py63# for n in {1..100}; do rm -rf /home/ed/Pictures/wp/.hist/th/ ; python3 -m copyparty -qv /home/ed/Pictures/wp/::r --th-n
HIGHcopyparty/web/a/partyfuse.py34 awk '/-BEGIN CERTIFICATE-/ {a=1} a; /-END CERTIFICATE-/{exit}' <(openssl s_client -connect 127.0.0.1:3923 </dev/null 2
Decorative Section Separators10 hits · 27 pts
SeverityFileLineSnippet
MEDIUMpyproject.toml73# =====================================================================
MEDIUMpyproject.toml108# =====================================================================
MEDIUMpyproject.toml125# =====================================================================
MEDIUMpyproject.toml152# =====================================================================
MEDIUMbin/hooks/reloc-by-wark-xau.py73 # -------------------------------------------------------------------------
MEDIUMscripts/rls.sh69[ $rls ] || exit 0 # ----------------------------------------------------
MEDIUMscripts/help2txt.sh27# =====================================================================
MEDIUMscripts/pyinstaller/notes.txt15## ============================================================
MEDIUMscripts/pyinstaller/notes.txt116## ============================================================
MEDIUMscripts/pyinstaller/notes.txt166## ============================================================
Hyper-Verbose Identifiers13 hits · 13 pts
SeverityFileLineSnippet
LOWbin/handlers/redirect.py23def send_errorpage_with_redirect_link(cli, new_path):
LOWscripts/deps-docker/genprism.py28def parse_prism_configuration(url_str):
LOWscripts/deps-docker/genprism.py72def get_language_dependencies(components, name):
LOWcopyparty/web/baguettebox.js983 function showNextImageIgnoreReadDir(e) {
LOWcopyparty/web/baguettebox.js988 function showPreviousImageIgnoreReadDir(e) {
LOWcopyparty/stolen/qrcodegen.py412 def _get_alignment_pattern_positions(self) -> List[int]:
LOWcopyparty/stolen/qrcodegen.py429 def _get_num_raw_data_modules(ver: int) -> int:
LOWcopyparty/stolen/qrcodegen.py448 def _reed_solomon_compute_divisor(degree: int) -> bytes:
LOWcopyparty/stolen/qrcodegen.py471 def _reed_solomon_compute_remainder(data: bytes, divisor: bytes) -> bytes:
LOWcopyparty/stolen/qrcodegen.py492 def _finder_penalty_count_patterns(self, runhistory: collections.deque[int]) -> int:
LOWcopyparty/stolen/qrcodegen.py504 def _finder_penalty_terminate_and_count(
LOWcopyparty/stolen/qrcodegen.py517 def _finder_penalty_add_history(
LOWcopyparty/stolen/ifaddr/_win32.py68def enumerate_interfaces_of_adapter(
AI Slop Vocabulary3 hits · 6 pts
SeverityFileLineSnippet
LOWscripts/rls.sh5# usage: ./scripts/rls.sh sfx gzz 10 # just create sfx.py + en.py + helptext
LOWscripts/deps-docker/mini-fa.sh35# kinda works but ruins hinting on windows, just use the old version of the font which has correct baseline
MEDIUMcopyparty/httpcli.py5711 # get 401'd, so send a challenge if we're Absolutely Sure
Slop Phrases2 hits · 4 pts
SeverityFileLineSnippet
MEDIUMscripts/make-sfx.sh78# if you are on windows, you can use msys2:
LOWcopyparty/authsrv.py1234 # if ap/vp has a user/group placeholder, make sure to keep
Fake / Example Data2 hits · 2 pts
SeverityFileLineSnippet
LOWcopyparty/web/browser.html61 📟<input type="text" name="msg" class="i" placeholder="lorem ipsum dolor sit amet">
LOWcopyparty/web/browser.html61 📟<input type="text" name="msg" class="i" placeholder="lorem ipsum dolor sit amet">
Overly Generic Function Names1 hit · 0 pts
SeverityFileLineSnippet
LOWbin/hooks/wget-i.py54def do_stuff(inf):