{"id":38658051,"url":"https://github.com/skyme5/magzdb","last_synced_at":"2026-01-17T09:30:24.975Z","repository":{"id":37044435,"uuid":"276730396","full_name":"skyme5/magzdb","owner":"skyme5","description":"magzdb.org Downloader","archived":false,"fork":false,"pushed_at":"2024-12-07T08:17:45.000Z","size":210,"stargazers_count":50,"open_issues_count":15,"forks_count":10,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-09-09T07:51:39.414Z","etag":null,"topics":["downloader","magazine","magazines","magzdb"],"latest_commit_sha":null,"homepage":"","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/skyme5.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"2020-07-02T19:34:09.000Z","updated_at":"2025-06-30T18:35:40.000Z","dependencies_parsed_at":"2023-10-03T22:21:20.466Z","dependency_job_id":"134019f6-60c0-4065-b676-5e4aea1eb925","html_url":"https://github.com/skyme5/magzdb","commit_stats":{"total_commits":157,"total_committers":7,"mean_commits":"22.428571428571427","dds":"0.45222929936305734","last_synced_commit":"3fa0bb70aa62fc3380572e6b21631b0d0c16561e"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/skyme5/magzdb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skyme5%2Fmagzdb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skyme5%2Fmagzdb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skyme5%2Fmagzdb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skyme5%2Fmagzdb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skyme5","download_url":"https://codeload.github.com/skyme5/magzdb/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skyme5%2Fmagzdb/sbom","scorecard":{"id":830690,"data":{"date":"2025-08-11","repo":{"name":"github.com/skyme5/magzdb","commit":"65458e33d7a49fc8276273ac86a108adbf5985c1"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4,"checks":[{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/continuous-integration-pip.yml:1","Warn: no topLevel permission defined: .github/workflows/continuous-integration-publish.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v1.2.0 not signed: https://api.github.com/repos/skyme5/magzdb/releases/91030053","Warn: release artifact v1.1.9 not signed: https://api.github.com/repos/skyme5/magzdb/releases/82194179","Warn: release artifact v1.1.8 not signed: https://api.github.com/repos/skyme5/magzdb/releases/69762023","Warn: release artifact v1.1.7 not signed: https://api.github.com/repos/skyme5/magzdb/releases/66881200","Warn: release artifact v1.1.6 not signed: https://api.github.com/repos/skyme5/magzdb/releases/59103908","Warn: release artifact v1.2.0 does not have provenance: https://api.github.com/repos/skyme5/magzdb/releases/91030053","Warn: release artifact v1.1.9 does not have provenance: https://api.github.com/repos/skyme5/magzdb/releases/82194179","Warn: release artifact v1.1.8 does not have provenance: https://api.github.com/repos/skyme5/magzdb/releases/69762023","Warn: release artifact v1.1.7 does not have provenance: https://api.github.com/repos/skyme5/magzdb/releases/66881200","Warn: release artifact v1.1.6 does not have provenance: https://api.github.com/repos/skyme5/magzdb/releases/59103908"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/continuous-integration-pip.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/skyme5/magzdb/continuous-integration-pip.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/continuous-integration-pip.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/skyme5/magzdb/continuous-integration-pip.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/continuous-integration-pip.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/skyme5/magzdb/continuous-integration-pip.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/continuous-integration-pip.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/skyme5/magzdb/continuous-integration-pip.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/continuous-integration-publish.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/skyme5/magzdb/continuous-integration-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/continuous-integration-publish.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/skyme5/magzdb/continuous-integration-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/continuous-integration-publish.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/skyme5/magzdb/continuous-integration-publish.yml/master?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:1: pin your Docker image by updating python:3.10-slim-bullseye to python:3.10-slim-bullseye@sha256:f1fb49e4d5501ac93d0ca519fb7ee6250842245aba8612926a46a0832a1ed089","Warn: pipCommand not pinned by hash: Dockerfile:3","Warn: pipCommand not pinned by hash: .github/workflows/continuous-integration-pip.yml:31","Warn: pipCommand not pinned by hash: .github/workflows/continuous-integration-pip.yml:32","Warn: pipCommand not pinned by hash: .github/workflows/continuous-integration-pip.yml:33","Warn: pipCommand not pinned by hash: .github/workflows/continuous-integration-pip.yml:34","Warn: pipCommand not pinned by hash: .github/workflows/continuous-integration-publish.yml:30","Warn: pipCommand not pinned by hash: .github/workflows/continuous-integration-publish.yml:31","Warn: pipCommand not pinned by hash: .github/workflows/continuous-integration-publish.yml:32","Warn: pipCommand not pinned by hash: .github/workflows/continuous-integration-publish.yml:33","Warn: pipCommand not pinned by hash: .github/workflows/continuous-integration-publish.yml:34","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned","Info:   0 out of  10 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":6,"reason":"4 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-9hjg-9r4m-mvj7","Warn: Project is vulnerable to: GHSA-9wx4-h78v-vm56","Warn: Project is vulnerable to: PYSEC-2023-74 / GHSA-j8r2-6x86-q33q","Warn: Project is vulnerable to: PYSEC-2024-48 / GHSA-fj7x-q9j7-g6q6"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-23T17:42:33.569Z","repository_id":37044435,"created_at":"2025-08-23T17:42:33.569Z","updated_at":"2025-08-23T17:42:33.569Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28505560,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T06:57:29.758Z","status":"ssl_error","status_checked_at":"2026-01-17T06:56:03.931Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["downloader","magazine","magazines","magzdb"],"created_at":"2026-01-17T09:30:22.244Z","updated_at":"2026-01-17T09:30:24.892Z","avatar_url":"https://github.com/skyme5.png","language":"Python","funding_links":["https://buymeacoffee.com/skyme5"],"categories":[],"sub_categories":[],"readme":"\u003cp\u003e\n  \u003cdiv align=\"center\"\u003e\n  \u003ch1\u003e\n    magzdb - magzdb.org Downloader\u003cbr /\u003e \u003cbr /\u003e\n    \u003ca href=\"https://pypi.python.org/pypi/magzdb\"\u003e\n      \u003cimg\n        src=\"https://img.shields.io/pypi/v/magzdb.svg\"\n        alt=\"Python Package\"\n      /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://pypi.python.org/pypi/magzdb\"\u003e\n      \u003cimg\n        src=\"https://github.com/skyme5/magzdb/actions/workflows/continuous-integration-pip.yml/badge.svg\"\n        alt=\"CI\"\n      /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://codecov.io/gh/skyme5/magzdb\"\u003e\n      \u003cimg\n        src=\"https://img.shields.io/codecov/c/github/skyme5/magzdb\"\n        alt=\"Code Coverage\"\n      /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://codecov.io/gh/skyme5/magzdb\"\u003e\n      \u003cimg\n        src=\"https://img.shields.io/pypi/pyversions/magzdb?cacheSeconds=3600\"\n        alt=\"Python Versions\"\n      /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/psf/black\"\u003e\n      \u003cimg\n        src=\"https://img.shields.io/badge/code%20style-black-000000.svg\"\n        alt=\"The Uncompromising Code Formatter\"\n      /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://pepy.tech/project/magzdb\"\u003e\n      \u003cimg\n        src=\"https://static.pepy.tech/badge/magzdb\"\n        alt=\"Monthly Downloads\"\n      /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://opensource.org/licenses/MIT\"\u003e\n      \u003cimg\n        src=\"https://img.shields.io/badge/License-MIT-blue.svg\"\n        alt=\"License: MIT\"\n      /\u003e\n    \u003c/a\u003e\n  \u003c/h1\u003e\n  \u003ca href=\"https://buymeacoffee.com/skyme5\" target=\"_blank\"\u003e\u003cimg src=\"https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png\" alt=\"Buy Me A Coffee\" style=\"height: 41px !important;width: 174px !important;\" \u003e\u003c/a\u003e\n  \u003c/div\u003e\n  \u003c/div\u003e\n\u003c/p\u003e\n\n### Installation\n\nInstall using pip\n\n```bash\n$ pip install -U magzdb\n```\n\n\n### Usage\n\n```text\nusage: magzdb [-h] [-V] -i MAGAZINE_ID [-e [EDITION [EDITION ...]]]\n              [-f FILTER] [-l] [-P DIRECTORY_PREFIX] [--downloader DOWNLOADER]\n              [--debug]\n\nMagzdb.org Downloader\n\nrequired arguments:\n  -i MAGAZINE_ID, --id MAGAZINE_ID\n                        ID of the Magazine to Download. eg. http://magzdb.org/j/\u003cID\u003e.\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -V, --version         Print program version and exit\n  -e [EDITION [EDITION ...]], --editions [EDITION [EDITION ...]]\n                        Select Edition\n  -f FILTER, --filter FILTER\n                        Use filter. See README#Filters\n  -l, --latest          Download only latest edition.\n  -P DIRECTORY_PREFIX, --directory-prefix DIRECTORY_PREFIX\n                        Download directory.\n  --downloader DOWNLOADER\n                        Use External downloader (RECOMMENDED). Currently supported: aria2, wget, curl\n  --debug               Print debug information.\n  --skip-download       Don't download files.\n```\n\n### Usage Examples\n\n#### Docker\n\n```bash\ndocker build . -t magzdb\ndocker run -v $(PWD):/tmp magzdb -h\n\n# Add alias to shell\nalias magzdb=\"docker run -v $(PWD):/tmp magzdb\"\nmagzdb -h\n```\n\n#### Download all editions\n\n```bash\n$ magzdb -i 1826\n```\n\n#### Filters\n\nYou can supply filter using `-f`, for example to download issues between\n`4063895` and `4063901`, you can write as\n\n```bash\n$ magzdb -i 1826 -f \"eid \u003e 4063895 and eid \u003c 4063901\"\n```\n\nYou can use `eid`, `year` in the filter expression.\n\n##### More examples of filter expression\n\n- `eid \u003e 4063895 and eid \u003c 4063901` or `eid \u003e= 4063895 and eid \u003c= 4063901`\n- `eid \u003e= 4063895` or `eid != 4063895`\n- `year \u003e= 2018`, `year \u003c= 2018`, `year == 2018` or even `year != 2018`\n\n#### Download only latest edition\n\n```bash\n$ magzdb -i 1826 -l\n```\n\n#### Download only latest edition with custom location `magazine`\n\n```bash\n$ magzdb -i 1826 -l -P magazine\n```\n\n#### Use external downloader\n\n```bash\n$ magzdb -i 1826 -l -P magazine --downloader wget\n```\n\n\u003e This is recommended since internal downloader does not support resuming interrupted downloads.\n\n### Python Installation Recommendation\n\nIf you don't want to install official [Python](https://www.python.org/downloads/) to your system (global).\nYou can install [pyenv installer](https://github.com/pyenv/pyenv-installer) environment under your specific account. It's prefered method for macOS users, because High Sierra and later macOS ships with old Python 2.7.10.\n\n## Contributing\n\nFound a bug or missing a feature you are more than welcome to contribute.\n\n\u003ca href=\"https://github.com/skyme5/magzdb/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=skyme5/magzdb\" /\u003e\n\u003c/a\u003e\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskyme5%2Fmagzdb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskyme5%2Fmagzdb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskyme5%2Fmagzdb/lists"}