{"id":20596232,"url":"https://github.com/lbesnard/bdnex","last_synced_at":"2025-04-14T23:50:26.641Z","repository":{"id":47345983,"uuid":"514849196","full_name":"lbesnard/bdnex","owner":"lbesnard","description":"BDneX - BD metadata scrapper (bedetheque.com, bdfuge...) in ComicRack format for french comics","archived":false,"fork":false,"pushed_at":"2023-02-22T03:53:51.000Z","size":2700,"stargazers_count":11,"open_issues_count":3,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-28T11:51:07.198Z","etag":null,"topics":["bd","cli","comics","metadata","python","scraper"],"latest_commit_sha":null,"homepage":"https://lbesnard.github.io/bdnex","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lbesnard.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-07-17T13:20:11.000Z","updated_at":"2025-02-26T23:59:30.000Z","dependencies_parsed_at":"2022-07-21T12:03:32.318Z","dependency_job_id":null,"html_url":"https://github.com/lbesnard/bdnex","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbesnard%2Fbdnex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbesnard%2Fbdnex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbesnard%2Fbdnex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbesnard%2Fbdnex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lbesnard","download_url":"https://codeload.github.com/lbesnard/bdnex/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248981259,"owners_count":21193144,"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":["bd","cli","comics","metadata","python","scraper"],"created_at":"2024-11-16T08:15:49.295Z","updated_at":"2025-04-14T23:50:26.625Z","avatar_url":"https://github.com/lbesnard.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"![BDneX](https://github.com/lbesnard/bdnex/actions/workflows/test.yml/badge.svg)\n[![codecov](https://codecov.io/gh/lbesnard/bdnex/branch/main/graph/badge.svg?token=V9WJWRCTK5)](https://codecov.io/gh/lbesnard/bdnex)\n\nBDneX french comics tagger and library manager (POF at this stage)\n\n### Motivation\nContrary to music tagging, there is no agreed standard vocabulary for comics\ntagging in general. However the ComicRack standard is used by most library\nmanagers such as [Komga](https://komga.org/)\n\nA few teams are working on metadata for American comics, such as [comic tagger](https://github.com/comictagger/comictagger)\nThis tool retrieves data from the ComicVine REST API [Comic Vine](https://comicvine.gamespot.com).\nHowever it is mostly for american comics, and only the most famous french ones\nare represented.\n\nBDneX comes here to hopefully fill the gap, with search capabilities of metadata,\nwhich then can be added to **CBZ** and **CBR** file format. \n\nWhy doing this?\nOn big libraries, it becomes easy then to find a book, based on its genre,\ncommunity score, author, colorist, penciller!\n\nRead List can then be generated and more easily shared accross the community as\nbased on metadata and not an obscure filename.\n\n### Current Features\n- retrieve sitemaps from bedetheque.com \n- levenhstein fuzzy string matching to find album name on external website\n    (since no API is available)\n- alternatively, there is currently a duckduckgo search, but will probably be\n    deprecated\n- Parse content of webpage with beautifulSoup\n- convert parsed metadata into ComicInfo.xsd template\n- Image comparaison between online cover and archive cover to bring confidence\n    into creating metadata file\n\n### Roadmap (?)\nFurther Feature(?):\n- SQLight database to keep record of already processed data\n- Interactive mode\n- catalog manager\n- renaming convention, based on user conf in ~/.local/bdnex/bdnex.ini\n- add more \"API\", fmor bdfuge ...\n- resume\n\nGet inspiration from beets music manager: [beets](https://github.com/beetbox/beets)\n\n\n## Installation\n\nIt is recommended to create a virtual environmnent with Conda\n```commandline\nconda env create --file=environment.yml\nconda activate bdnex\n```\n\nUser mode:\n```\npip install .\n```\n\nDev mode:\n```\npip install -e .[dev]\n```\n\n\n## Examples:\n\n```\nbdnex -f /tmp/  # folder containing albums\n```\n\n```commandline\n2022-07-22 02:22:28,605 - INFO     - bdnex.ui - Processing /tmp/dummy.cbz\n2022-07-22 02:22:28,605 - INFO     - bdnex.lib.bdgest - Searching for \"dummuy\"\" in bedetheque.com sitemap files\n2022-07-22 02:22:28,605 - DEBUG    - bdnex.lib.bdgest - Searching for \"dummy\"\" in bedetheque.com sitemap files [FAST VERSION]\n2022-07-22 02:22:28,605 - DEBUG    - bdnex.lib.bdgest - Merging sitemaps\n2022-07-22 02:22:32,993 - DEBUG    - bdnex.lib.bdgest - Match album name succeeded\n2022-07-22 02:22:32,993 - DEBUG    - bdnex.lib.bdgest - Levenhstein score: 53.333333333333336\n2022-07-22 02:22:32,993 - DEBUG    - bdnex.lib.bdgest - Matched url: https://m.bedetheque.com/BD-dummy.html\n2022-07-22 02:22:32,993 - DEBUG    - bdnex.lib.bdgest - Parsing JSON metadata from already parsed web page ~/.local/share/bdnex/bedetheque/albums_json/BD-dummy.json\n2022-07-22 02:22:33,002 - INFO     - bdnex.lib.bdgest - Converting parsed metadata to ComicRack template\n2022-07-22 02:22:33,011 - DEBUG    - bdnex.lib.cover - Cover ~/.local/share/bdnex/bedetheque/covers/Couv_dummy.jpg already downloaded\n2022-07-22 02:22:33,011 - INFO     - bdnex.lib.cover - Checking Cover from input file with online cover\n2022-07-22 02:22:33,442 - INFO     - bdnex.lib.cover - Cover matching percentage: 44.9264705882353\n2022-07-22 02:22:33,442 - INFO     - bdnex.lib.comicrack - Add ComicInfo.xml to /tmp/dummy.cbz\n2022-07-22 02:22:33,442 - INFO     - bdnex.lib.comicrack - Create ComicInfo.xml\n2022-07-22 02:22:33,444 - INFO     - bdnex.lib.comicrack - Successfully appended ComicInfo.xml to /tmp/dummy.cbz\n2022-07-22 02:22:33,445 - INFO     - bdnex.ui - Processing album done\n...\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flbesnard%2Fbdnex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flbesnard%2Fbdnex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flbesnard%2Fbdnex/lists"}