{"id":16517000,"url":"https://github.com/wazzabeee/copy-spotter","last_synced_at":"2025-08-15T18:33:23.479Z","repository":{"id":68303683,"uuid":"424936379","full_name":"Wazzabeee/copy-spotter","owner":"Wazzabeee","description":"Make plagiarism detection easier. This script will find similar sentences between given files and highlight them in a side by side comparison.","archived":false,"fork":false,"pushed_at":"2024-06-17T13:14:41.000Z","size":28608,"stargazers_count":45,"open_issues_count":3,"forks_count":13,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-12-08T00:31:56.582Z","etag":null,"topics":["beautifulsoup","bs4","docx","odt","pdf","plagiarism","plagiarism-check","plagiarism-checker","plagiarism-detection","plagiarism-detector","python","side-by-sidediff","similarity","similarity-detection","similarity-score","txt"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/copy-spotter/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Wazzabeee.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-05T12:13:22.000Z","updated_at":"2024-11-19T08:51:29.000Z","dependencies_parsed_at":"2024-11-24T10:12:55.352Z","dependency_job_id":null,"html_url":"https://github.com/Wazzabeee/copy-spotter","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wazzabeee%2Fcopy-spotter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wazzabeee%2Fcopy-spotter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wazzabeee%2Fcopy-spotter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wazzabeee%2Fcopy-spotter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Wazzabeee","download_url":"https://codeload.github.com/Wazzabeee/copy-spotter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229944114,"owners_count":18148811,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["beautifulsoup","bs4","docx","odt","pdf","plagiarism","plagiarism-check","plagiarism-checker","plagiarism-detection","plagiarism-detector","python","side-by-sidediff","similarity","similarity-detection","similarity-score","txt"],"created_at":"2024-10-11T16:28:16.966Z","updated_at":"2024-12-16T10:27:57.409Z","avatar_url":"https://github.com/Wazzabeee.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Copy Spotter\n\n![PyPI - Version](https://img.shields.io/pypi/v/copy-spotter) ![PyPI - License](https://img.shields.io/pypi/l/copy-spotter)\n![Python](https://img.shields.io/badge/python-3.11-blue)\n\n\n![GIF demo](https://raw.githubusercontent.com/Wazzabeee/copy-spotter/main/data/img/example.gif)\n\n## About\nThis program will process pdf, txt, docx, and odt files that can be found in the given input directory, find similar sentences, calculate similarity percentage, display a similarity table with links to side by side comparison where similar sentences are highlighted.\n\n**Usage**\n---\n\n```bash\n$ pip install copy-spotter\n$ copy-spotter [-s] [-o] [-h] input_directory\n```\n***Positional Arguments:***\n* `input_directory`: One directory that contains all files (pdf, txt, docx, odt) (see `data/pdf/plagiarism` for example)\n\n```\ninput_directory/\n│\n├── file_1.docx\n├── file_2.pdf\n└── file_3.pdf\n```\n\n***Optional Arguments:***\n* `-s`, `--block-size`: Set minimum number of consecutive and similar words detected. (Default is 2)\n* `-o`, `--out_dir`: Set the output directory for html files. (Default is creating a new directory called results)\n* `-h`, `--help`: Show this message and exit.\n\n**Examples**\n---\n```bash\n# Analyze documents in 'data/pdf/plagiarism', with default settings\n$ copy-spotter data/pdf/plagiarism\n\n# Analyze with custom block size and specify output directory\n$ copy-spotter data/pdf/plagiarism -s 5 -o results/output\n```\n\n**Development Setup:**\n---\n\n```bash\n# Clone this repository\n$ git clone https://github.com/Wazzabeee/copy_spotter\n\n# Go into the repository\n$ cd copy_spotter\n\n# Install requirements\n$ pip install -r requirements.txt\n$ pip install -r requirements_lint.txt\n\n# Install precommit\n$ pip install pre-commit\n$ pre-commit install\n\n# Run tests\n$ pip install pytest\n$ pytest tests/\n\n# Run package locally\n$ python -m scripts.main [-s] [-o] [-h] input_directory\n```\n\n**Recommandations**\n---\n- Please make sure that all text files are closed before running the program.\n- In order to get the best results please provide text files of the same languages.\n- Pdf files that are made from scanned images won't be processed correctly.\n- Ensure you have writing access when using the package \n- If a specific file is not processed correctly feel free to [contact me](mailto:\u003cclement45.delteil45@gmail.com\u003e) so that I can address the issue.\n\n**TODO**\n---\n- Add more tests on existing functions\n- Implement OCR with tesseract for scanned documents\n- Add custom naming option for pdf files","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwazzabeee%2Fcopy-spotter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwazzabeee%2Fcopy-spotter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwazzabeee%2Fcopy-spotter/lists"}