Adding firebonk api
This commit is contained in:
parent
318e9b1bb6
commit
de70e3b474
|
@ -25,6 +25,8 @@ class Crawler:
|
||||||
|
|
||||||
article_urls.append(
|
article_urls.append(
|
||||||
'https://www.ka-news.de/region/karlsruhe/falschparker-werden-in-karlsruhe-ab-juli-frueher-abgeschleppt-art-2813321')
|
'https://www.ka-news.de/region/karlsruhe/falschparker-werden-in-karlsruhe-ab-juli-frueher-abgeschleppt-art-2813321')
|
||||||
|
article_urls.append(
|
||||||
|
'https://www.ka-news.de/region/karlsruhe/musikalische-klaenge-in-der-karlsruher-innenstadt-karlsruhe-klingt-music-to-go-findet-zum-10-mal-statt-art-2813273')
|
||||||
|
|
||||||
articles = []
|
articles = []
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
import logging
|
||||||
|
import requests
|
||||||
|
|
||||||
|
|
||||||
|
class FirebonkApi:
|
||||||
|
def __init__(self, api_url, user, password):
|
||||||
|
self.url = api_url
|
||||||
|
self.token = self.__auth_request__(user, password)
|
||||||
|
|
||||||
|
def __auth_request__(self, user, password) -> str:
|
||||||
|
body = {
|
||||||
|
'username': user,
|
||||||
|
'password': password
|
||||||
|
}
|
||||||
|
|
||||||
|
res = requests.post(self.url + '/auth/login', json=body)
|
||||||
|
|
||||||
|
return res.json()['auth_token']
|
||||||
|
|
||||||
|
def create_post(self, title, summary, url, image_url):
|
||||||
|
headers = {'Authorization': 'Bearer {}'.format(self.token)}
|
||||||
|
|
||||||
|
body = {
|
||||||
|
'data': {
|
||||||
|
'message': '# ' + title + '\n\n' + summary + '\n\n Link zum Artikel: ' + url,
|
||||||
|
'content': {
|
||||||
|
'metadata': {
|
||||||
|
'visibility': 1,
|
||||||
|
'archived': False,
|
||||||
|
'pinned': False,
|
||||||
|
'locked_comments': False
|
||||||
|
},
|
||||||
|
'topics': [
|
||||||
|
{
|
||||||
|
'name': 'ka-news'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
res = requests.post(self.url + '/post/container/51', json=body, headers=headers)
|
||||||
|
|
||||||
|
if res.status_code != 200:
|
||||||
|
logging.critical('Cannot create post! Message: %s', res.content)
|
13
main.py
13
main.py
|
@ -1,5 +1,7 @@
|
||||||
import sql
|
import sql
|
||||||
|
import os
|
||||||
from crawler import Crawler
|
from crawler import Crawler
|
||||||
|
from firebonk_api import FirebonkApi
|
||||||
|
|
||||||
|
|
||||||
def __check_and_insert_in_database__(conn, article) -> bool:
|
def __check_and_insert_in_database__(conn, article) -> bool:
|
||||||
|
@ -29,12 +31,17 @@ if __name__ == '__main__':
|
||||||
crawl = Crawler('https://www.ka-news.de')
|
crawl = Crawler('https://www.ka-news.de')
|
||||||
conn = sql.get_connection()
|
conn = sql.get_connection()
|
||||||
|
|
||||||
|
user = os.environ.get('FIREBONK_USER')
|
||||||
|
pw = os.environ.get('FIREBONK_PASSWORD')
|
||||||
|
|
||||||
|
api = FirebonkApi('https://www.firebonk.de/api/v1', user, pw)
|
||||||
|
|
||||||
|
|
||||||
articles = crawl.check_for_new_yaa_articles()
|
articles = crawl.check_for_new_yaa_articles()
|
||||||
|
|
||||||
for article in articles:
|
for article in articles:
|
||||||
if not __check_and_insert_in_database__(conn, article):
|
if not __check_and_insert_in_database__(conn, article):
|
||||||
print('New!')
|
# Post is new
|
||||||
else:
|
api.create_post(article.title, article.summary, article.url, article.image_url)
|
||||||
print('Old!')
|
|
||||||
|
|
||||||
conn.close()
|
conn.close()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user