Ejemplo n.º 1
0
def update_papers_1(conn, lock, url, alljel):
    """Update papers from a single ReDIF document."""
    papers = load(url)
    with lock:
        c = conn.cursor()
        if iserror(papers):
            sql = 'UPDATE listings SET status = 2, error = ? WHERE url = ?'
            c.execute(sql, (str(papers), url))
        else:
            sql = 'UPDATE listings SET status = 0, error = NULL WHERE url = ?'
            c.execute(sql, (url, ))
            for paper in papers:
                replace_paper(c, paper, url, alljel)
        c.close()
    return not iserror(papers)
Ejemplo n.º 2
0
def update_series_1(conn, lock, file, cat):
    """Update the database for a series or an archive file."""
    r = load(file, cat)
    with lock:
        c = conn.cursor()
        if iserror(r):
            sql = 'UPDATE repec SET status = 2, error = ? WHERE file = ?'
            c.execute(sql, (str(r), file))
        else:
            sql = 'UPDATE repec SET status = 0, error = NULL WHERE file = ?'
            c.execute(sql, (file, ))
            sql = ('REPLACE INTO series (file, type, handle, url)'
                   ' VALUES (?, ?, ?, ?)')
            c.executemany(sql, r)
        c.close()
    return not iserror(r)
Ejemplo n.º 3
0
def update_listings_1(conn, lock, url):
    """Update remote listings for a single series."""
    files = listing(url)
    with lock:
        c = conn.cursor()
        if iserror(files):
            sql = 'UPDATE remotes SET status = 2, error = ? WHERE url = ?'
            c.execute(sql, (str(files), url))
        else:
            files = [(f, url) for f in files]
            sql = 'UPDATE remotes SET status = 0, error = NULL WHERE url = ?'
            c.execute(sql, (url, ))
            sql = 'REPLACE INTO listings (url, remote) VALUES (?, ?)'
            c.executemany(sql, files)
        c.close()
    return not iserror(files)