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)
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)
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)