def user_article_update(): """ update info about this (user x article) pair in the form data you can provide - liked=True|1|False|0 - starred -ibidem- :return: json as prepared by content_recommender.mixed_recommender.user_article_info """ article_id = int(request.form.get("article_id")) starred = request.form.get("starred") liked = request.form.get("liked") article = Article.query.filter_by(id=article_id).one() user_article = UserArticle.find_or_create(db_session, flask.g.user, article) if starred is not None: user_article.set_starred(starred in ["true", "True", "1"]) if liked is not None: user_article.set_liked(liked in ["true", "True", "1"]) db_session.commit() return "OK"
def article_opened(session, article_id, user): article = Article.query.filter_by(id=article_id).one() ua = UserArticle.find(user, article) if not ua: ua = UserArticle.find_or_create(session, user, article, opened=datetime.now()) ua.opened = datetime.now() session.add(ua) session.commit() log(f"{ua}")
def article_opened(): """ track the fact that the article has been opened by the user """ article_id = int(request.form.get("article_id")) article = Article.query.filter_by(id=article_id).one() ua = UserArticle.find_or_create(db_session, flask.g.user, article) ua.set_opened() db_session.add(ua) db_session.commit() return "OK"
import zeeguu_core from zeeguu_core.model import Article, UserArticle from zeeguu_core.model.starred_article import StarredArticle session = zeeguu_core.db.session for sa in StarredArticle.query.all(): try: article = Article.find_or_create(session, sa.url.as_string()) ua = UserArticle.find_or_create(session, sa.user, article, starred=sa.starred_date) session.add(ua) session.commit() print(f'{sa.starred_date} x {ua.user.name} x {ua.article.title}') except Exception as ex: print(f'could not import {sa.url.as_string()}') print(ex)