Example #1
0
def update(user_id, local=False, rebuild=False):
    with db_session:
        u = model.BlogUser.get(user_id=user_id)
        if not u:
            abort(404, "bloguser %s not exists" % user_id)
        repo_url = u.article_repo
        old_commit = u.latest_commit
        gitname = u.gitname
    if rebuild:
        clear_db(gitname)
        old_commit = ""
    msg = "local"
    err = None
    if not local:
        __, owner, __ = gitutil.parse_giturl(repo_url)
        err, ret = update_local(repo_url, owner)
        msg = unicode(err) if err else ret
    if not err:
        mddir = get_mddir(repo_url)
        update_db(mddir, gitname, old_commit)
        logs = gitutil.git_log(mddir)
        if logs:
            latest_commit = logs[0][0]
            with db_session:
                u = model.BlogUser.get(user_id=user_id)
                u.latest_commit = latest_commit
    return err, msg
Example #2
0
def test_git_log():
    host, owner, repo = gitutil.parse_giturl(REPO_URL)
    t_en = gitutil.git_log(os.path.join(REPO_EN, repo))
    t_cn = gitutil.git_log(os.path.join(REPO_CN, repo))
    expect = [(u'e744949159ecea5a9f68a1715e8d1e4fafd87dea', u'guyskk', u'*****@*****.**', u'Sun Sep 27 15:24:39 2015 +0800', u'add md'),
              (u'1a1bba5d3c2a4958644e4bbfb1a4ebb8abfafd23', u'kk', u'*****@*****.**', u'Sun Sep 27 11:51:26 2015 +0800', u'Initial commit')]
    assert len(t_en) >= 2
    assert t_en[-2:] == expect
    assert t_cn == t_en
Example #3
0
def add_bloguser(user_id, role, article_repo=None):
    u = model.BlogUser.get(user_id=user_id)
    if u:
        raise ValueError("bloguser user_id=%s already exists" % user_id)
    try:
        __, gitname, __ = gitutil.parse_giturl(article_repo)
    except:
        raise ValueError("invalid article_repo: %s" % article_repo)

    now = datetime.now()
    config = dict(user_id=user_id, role=role, article_repo=article_repo,
                  gitname=gitname, date_modify=now)
    u = model.BlogUser(date_create=now, **config)
Example #4
0
def create_or_update_bloguser(user_id, role, article_repo, website):
    website = website or ""
    try:
        __, git_username, __ = gitutil.parse_giturl(article_repo)
    except:
        abort(400, "invalid article_repo: %s" % article_repo)
    user_id = unicode(user_id)
    config = dict(role=role, article_repo=article_repo,
                  git_username=git_username,
                  website=website, user_system="kkblog", user_id=user_id)
    with db_session:
        u = model.BlogUser.get(user_id=user_id)
        if not u:
            u = model.BlogUser(date_create=datetime.now(), **config)
        else:
            u.set(**config)
        return _out_user(u)
Example #5
0
def get_mddir(repo_url, dest=None):
    if dest is None:
        dest = current_app.config["ARTICLE_DEST"]
    host, owner, repo = gitutil.parse_giturl(repo_url)
    return os.path.join(dest, owner, repo)
Example #6
0
def test_parse_giturl():

    for url in URLS.values():
        host, owner, repo = gitutil.parse_giturl(url)
        assert (host, owner, repo) == ("github.com", "guyskk", "kkblog")
Example #7
0
def test_modified_files():

    host, owner, repo = gitutil.parse_giturl(REPO_URL)
    t_en = gitutil.modified_files(os.path.join(REPO_EN, repo), "1a1bba5d3")
    t_cn = gitutil.modified_files(os.path.join(REPO_CN, repo), "1a1bba5d3")
    assert t_cn == t_en