39 lines
1.4 KiB
Python
39 lines
1.4 KiB
Python
from channel.toutiao.toutiao import Toutiao
|
|
from database.database import get_session
|
|
from database.tcontentdispatch.curd import get_recent_24_hours_content_to_dispatch
|
|
from database.tscheduler.model import TScheduler
|
|
from database.ttaskqueue.curd import create_task
|
|
from database.ttaskqueue.model import TTaskQueue
|
|
from log.log_manager import log
|
|
from task.manager_task import execute_task
|
|
|
|
|
|
def article_publish():
|
|
# 1. 从数据库获取文章
|
|
with get_session() as db:
|
|
# 2. 获取所有未发布的文章
|
|
article = get_recent_24_hours_content_to_dispatch(db, '新鲜事')
|
|
if article:
|
|
# 3. toutiao发布文章
|
|
toutiao = Toutiao(article)
|
|
toutiao.publish()
|
|
# 4. 打印日志
|
|
log(f'publish article {article.title} to toutiao success with article id: {article.id} and article time: {article.get_creation_date_in_localtime()}')
|
|
|
|
|
|
def article_publish_task():
|
|
execute_task(article_publish)
|
|
|
|
def article_publish_use_task_queue(scheduler: TScheduler):
|
|
with get_session() as db:
|
|
task = TTaskQueue()
|
|
task.task_name = 'toutiao_article_publish'
|
|
task.module_path = scheduler.module_path
|
|
task.function_name = scheduler.handler
|
|
task.scheduler = scheduler.task_name
|
|
create_task(db, task)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
article_publish_task()
|