{"id":18511017,"url":"https://github.com/stefanw/bibbot","last_synced_at":"2025-05-15T10:06:06.428Z","repository":{"id":39886860,"uuid":"249247472","full_name":"stefanw/bibbot","owner":"stefanw","description":"BibBot is a browser extension that removes the paywall on German online news sites using your library account's access to press databases.","archived":false,"fork":false,"pushed_at":"2025-03-14T13:15:39.000Z","size":1710,"stargazers_count":539,"open_issues_count":198,"forks_count":83,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-04-14T16:57:20.036Z","etag":null,"topics":["paywall"],"latest_commit_sha":null,"homepage":"https://stefanw.github.io/bibbot/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stefanw.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":["stefanw"]}},"created_at":"2020-03-22T18:32:22.000Z","updated_at":"2025-04-14T03:08:35.000Z","dependencies_parsed_at":"2023-11-19T20:32:32.860Z","dependency_job_id":"947c8259-f0fb-4708-b237-81265ebfbf18","html_url":"https://github.com/stefanw/bibbot","commit_stats":{"total_commits":574,"total_committers":27,"mean_commits":21.25925925925926,"dds":"0.12543554006968638","last_synced_commit":"d99d28f76e1804623ffbc6c901622f76f82d51e9"},"previous_names":[],"tags_count":101,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefanw%2Fbibbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefanw%2Fbibbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefanw%2Fbibbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefanw%2Fbibbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stefanw","download_url":"https://codeload.github.com/stefanw/bibbot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254319718,"owners_count":22051072,"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":["paywall"],"created_at":"2024-11-06T15:26:32.798Z","updated_at":"2025-05-15T10:06:06.271Z","avatar_url":"https://github.com/stefanw.png","language":"TypeScript","funding_links":["https://github.com/sponsors/stefanw"],"categories":[],"sub_categories":[],"readme":"# BibBot\n\n[Official website](https://stefanw.github.io/bibbot/)\n\n## Development\n\nThis uses rollup to build the extension files. Install and run like this:\n\n```sh\nnpm install\n\n# Run this during development\nnpm start\n```\n\n## Extension overview\n\nThe extension has four different entry points:\n\n- The content script in `src/content.ts` runs on the news article page, communicates with background script\n- the background script in `src/background.ts` which opens new tabs, navigates them around and scrapes the content\n- the options page in `src/options.ts` is the options page for the extension\n- the popup in `popup/` is opened when the extension icon in the toolbar is clicked\n\nThese are the relevant players:\n\n- `src/providers.ts` contains libraries that you authenticate against and that grant access\n- `src/sources.ts` contains databases that you can get access to through providers\n- `src/sites.ts` contains news sites, how to extract their meta data and which source could provide access\n\nFor details on how to construct any of these entities, have a look at `src/types.ts`\n\nAdditionally user data like credentials and chosen provider is stored via `browser.storage.sync`.\n\n\n## Tests\n\nThere is a test setup for sites using [Playwright](https://playwright.dev/) that can be run with:\n\n```bash\n# install dependencies\nnpm ci\n# Run linting and type checking\nnpm run lint\nnpm run check-types\n# Always run build before tests, as test uses build files!\nnpm run build\n# Run tests\nnpm run test\n# Run tests with actual browser window for one domain\nnpm run test -- --headed -g \"zeit.de\"\n```\n\nAdd testing data to site objects like this:\n\n```javascript\n// ...\n  'www.example.com': {\n    examples: [\n      {\n        url: 'http://example.com/article.html',\n        selectors: {\n          query: 'The string resulting from query selector'\n        }\n      }\n    ],\n    // optional setup async function\n    testSetup: async (page) =\u003e {\n        // page is playwright page\n        // use this for initial page setup\n    },\n// ...\n```\n\n\n## Release\n\n1. Run `npm version \u003cmajor|minor|patch\u003e`\n2. `git push --tags origin main`\n3. GitHub release Action will build, test, create release, sign Firefox extension, submit to Chrome Web Store and update website.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefanw%2Fbibbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstefanw%2Fbibbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefanw%2Fbibbot/lists"}