{"id":23291064,"url":"https://github.com/jplusplus/broken-promises","last_synced_at":"2025-08-21T22:31:59.293Z","repository":{"id":11016080,"uuid":"13343878","full_name":"jplusplus/broken-promises","owner":"jplusplus","description":"What should a journalist investigate today, according to what was promised in the past?","archived":false,"fork":false,"pushed_at":"2014-01-03T13:29:16.000Z","size":2127,"stargazers_count":6,"open_issues_count":3,"forks_count":2,"subscribers_count":11,"default_branch":"master","last_synced_at":"2024-04-14T04:55:28.324Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://brokenpromises.jplusplus.org","language":"Python","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/jplusplus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-10-05T11:03:32.000Z","updated_at":"2023-08-09T00:44:38.000Z","dependencies_parsed_at":"2022-08-28T06:00:34.388Z","dependency_job_id":null,"html_url":"https://github.com/jplusplus/broken-promises","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/jplusplus%2Fbroken-promises","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jplusplus%2Fbroken-promises/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jplusplus%2Fbroken-promises/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jplusplus%2Fbroken-promises/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jplusplus","download_url":"https://codeload.github.com/jplusplus/broken-promises/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230537085,"owners_count":18241519,"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":[],"created_at":"2024-12-20T05:14:01.073Z","updated_at":"2024-12-20T05:14:02.253Z","avatar_url":"https://github.com/jplusplus.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Broken-Promises\n===============\n\n[![Build Status](https://travis-ci.org/jplusplus/broken-promises.png)](http://travis-ci.org/jplusplus/broken-promises)\n\n\nIn 2003, an article in the New Scientist stated that bananas could be extinct in 2013. Guess what. This was yet another broken promise.\n\nIt can be hard to keep track of all promises and predictions. This tool makes it easier for journalists and citizens to keep an eye on what was promised for a certain date (a day, a month or a year). Articles from the Guardian and the New-York Times are searched for dates and then filtered to remove inadequate results (movie releases, for instance).\n\n## Note\n\nThis is only the backend system wich will retrieve articles. To show them, we have built [broken-promises-client](https://github.com/jplusplus/broken-promises-client).\n\n## Installation\n\n\n**a. Requirements**\n```bash\nsudo apt-get install build-essential git-core python python-pip python-dev redis-server\nsudo pip install virtualenv\n```\nAnd [MongoDB](http://www.mongodb.org/downloads).\n\n**b.  Download the project**\n```bash\ngit clone git@github.com:jplusplus/broken-promises.git\ncd broken-promises\n```\n\n**c. Install**\n\nWill download and install all the dependances in a `venv` directory. (Virtualenv required)\n\n```bash\nmake install\n```\n\n## Run the Application (API + Control Tower)\n\nLaunch Mongodb, the workers and the web application (API + Control Tower)\n\n```bash\nmake run\n```\n\nThen visit [http://127.0.0.1:5000](http://127.0.0.1:5000)\n\n__password__ : brokenpromises\n\n\n![screenshot](Webapp/static/img/1-jobs.png)\n![screenshot](Webapp/static/img/2-reports.png)\n![screenshot](Webapp/static/img/3-scheduled.png)\n\n## CLI\n\nIn the `Scripts/` directory.\n\n### Collect articles for a date\n\n```\nUsage: \n./collect_articles.py [options] year \n./collect_articles.py [options] year month\n./collect_articles.py [options] year month day\n\nOptions:\n  -h, --help            show this help message and exit\n  -f CHANNELS_FILE, --channelslistfile=CHANNELS_FILE\n                        Use this that as channels list to use\n  -c CHANNELS_LIST, --channels=CHANNELS_LIST\n                        channels list comma separated\n  -s, --storage         Save the result with the default storage\n  -d, --drop            drop the previous articles from database before\n  --force               Force the scrap. If --storage is enable, the scrap\n                        could be escape b/c of a previous similar scrap\n  -o OUTPUT_FILE, --output=OUTPUT_FILE\n                        Specify  a file to write the export to. If you do not\n                        specify a file name, the program writes data to\n                        standard output (e.g. stdout)\n\n```\n\n### Scrap a given page using the appropriate channel \n\n```\nusage: scrap_article.py [-h] [--with-filters] [--dates] url\n\npositional arguments:\n  url             url to scrap\n\noptional arguments:\n  -h, --help      show this help message and exit\n  --with-filters  Apply filters to remove unwanted dates\n  --dates         Return the date found in the article\n\n```\n## Run tests\n\n\t$ make test\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjplusplus%2Fbroken-promises","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjplusplus%2Fbroken-promises","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjplusplus%2Fbroken-promises/lists"}