- Parameters
- lang: string
- Returns
- application/json
- Example value
{
"countries": [
{
"country": "jp",
"language": "ja",
"name": "日本",
"representativeSiteUrl": "https://www.kantei.go.jp/jp/headline/kansensho/coronavirus.html",
"sources": [
"http://fij.info",
"http://yahoo.co.jp",
"http://kantei.co.jp",
"http://mhlw.go.cp",
"http://niid.go.jp"
],
"stats": {
"confirmation_today": 3196,
"confirmation_total": 245293,
"death_today": 60,
"death_total": 3429
}
},
{
"country": "cn",
"language": "zh",
"name": "中国",
"representativeSiteUrl": "http://www.gov.cn/fuwu/zt/yqfkzq/index.htm",
"sources": [
"http://ifeng.com",
"http://gov.cn"
],
"stats": {
"confirmation_today": 74,
"confirmation_total": 96160,
"death_today": 0,
"death_total": 4784
}
}
],
"topics": [
"感染状況",
"予防・防疫・緩和"
]
}Return articles sorted by topics.
- Parameters
- lang: string ('ja' or 'en')
- start: string (must be able to casted to an integer)
- limit: string (must be able to casted to an integer)
- query: string (required when specifying
searchas<topic>)
- Returns
- application/json
- Example value
{
"感染状況": {
"jp": [
"<article-information>",
"<article-information>"
],
"cn": [
"<article-information>",
"<article-information>"
]
},
"予防・防疫・緩和": {
"jp": [
"<article-information>",
"<article-information>"
],
"cn": [
"<article-information>",
"<article-information>"
]
}
}One <article-information> is like:
- Example value
{
"country": "jp",
"displayed_country": "jp",
"domain": "example.jp",
"domain_label": "domain label",
"is_about_COVID-19": 1,
"is_about_false_rumor": 0,
"is_checked": 1,
"is_clear": 1,
"is_hidden": 0,
"is_useful": 1,
"orig": {
"simple_timestamp": "timestamp",
"timestamp": "timestamp",
"title": "title"
},
"topics": [
{
"name": "感染状況",
"relatedness": 1.0,
"snippet": "重症者数"
}
],
"translated": {
"timestamp": "timestamp",
"title": "title"
},
"url": "example.com"
}<topic> must be an item in the topics in the meta-data or all or search. When using search, specify the query parameter.
- Example value
{
"jp": [
"<article-information>",
"<article-information>"
],
"cn": [
"<article-information>",
"<article-information>"
]
}<country> must be an item in the countries in the meta-data or all.
- Example value
[
"<article-information>",
"<article-information>"
]Returns up to 5 top rated recent articles for the specified country or topic.
Return tweets sorted by topics. No topic information is available at the moment. Only special topics, all and search, are valid.
- Parameters
- lang: string ('ja' or 'en')
- start: string (must be able to casted to an integer)
- limit: string (must be able to casted to an integer)
- query: string (required when specifying
searchas<topic>)
- Returns
- application/json
- Example value
{
"all": {
"jp": [
"<tweet-information>",
"<tweet-information>"
],
"cn": [
"<tweet-information>",
"<tweet-information>"
]
}
}One <tweet-information> is like:
{
"avatar": "example.jpg",
"contentOrig": "example text",
"contentTrans": "translated example text",
"id": 12345678901234567890,
"name": "name",
"timestamp": "timestamp",
"username": "screen bane",
"verified": true
}- Example value
{
"jp": [
"<tweet-information>",
"<tweet-information>"
],
"cn": [
"<tweet-information>",
"<tweet-information>"
]
}- Example value
[
"<tweet-information>",
"<tweet-information>"
]- Example value
{"url":"https://www.france24.com/fr/info-en-continu/20211018-wall-street-finit-sur-une-note-contrast%C3%A9e-entre-croissance-molle-et-bons-r%C3%A9sultats-d-entreprises","new_displayed_country":"fr","new_classes":["経済・福祉政策"],"is_hidden":false,"is_useful":false,"is_about_COVID-19":false,"is_about_false_rumor":false,"is_positive":true,"notes":"NG","password":"*****"}Install the dependencies using poetry.
$ poetry install
To activate the created virtual environment, run:
$ poetry shell
This project uses MongoDB to store article information. To install MongoDB, follow the official guide.
Then start a mongod process.
To run it as a daemon, use the --fork option.
$ sudo mongod --dbpath <dbpath> --logpath <logpath> --port <port> [--fork]
This project uses ElasticSearch to enable search. The setup instruction will soon be written.
Run python conf.py.
Before running this script, set the following environment variables.
# Password
PASSWORD=""
# CORS
CORS_ORIGINS="*"
# LogHandler
LOG_HANDLER_LOG_DIR=""
# DBHandler
DB_HANDLER_MONGO_HOST=""
DB_HANDLER_MONGO_PORT=""
DB_HANDLER_MONGO_DB_NAME=""
DB_HANDLER_MONGO_ARTICLE_COLLECTION_NAME=""
DB_HANDLER_MONGO_TWEET_COLLECTION_NAME=""
DB_HANDLER_ES_HOST=""
DB_HANDLER_ES_PORT=""
# TwitterHandler
TWITTER_HANDLER_OAUTH_TOKEN=""
TWITTER_HANDLER_OAUTH_TOKEN_SECRET=""
TWITTER_HANDLER_OAUTH_CONSUMER_KEY=""
TWITTER_HANDLER_OAUTH_CONSUMER_SECRET=""
# SlackHandler (tokens/channels are separated by white spaces)
SLACK_HANDLER_ACCESS_TOKENS=""
SLACK_HANDLER_APP_CHANNELS=""
# Data
ARTICLE_LIST=""
TWEET_LIST=""
SITE_LIST=""Use covid-19-extract-convert, text-classifier and covid-19-translate to prepare the data. Then run:
$ python cron.py --update_database
Run:
$ python cron.py --update_stats
Run:
$ python cron.py --update_sources
Run:
$ gunicorn app:app -b 0.0.0.0:12345 --reload
[INFO] Starting gunicorn 20.0.4
[INFO] Listening at: http://0.0.0.0:12345