summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xscripts/aurblup.py86
-rwxr-xr-xscripts/mkpkglists.py52
-rwxr-xr-xscripts/notify.py6
-rwxr-xr-xscripts/pkgmaint.py23
-rwxr-xr-xscripts/popupdate.py31
-rwxr-xr-xscripts/tuvotereminder.py28
6 files changed, 132 insertions, 94 deletions
diff --git a/scripts/aurblup.py b/scripts/aurblup.py
index 6733b45..07119b5 100755
--- a/scripts/aurblup.py
+++ b/scripts/aurblup.py
@@ -18,43 +18,49 @@ db_path = config.get('aurblup', 'db-path')
sync_dbs = config.get('aurblup', 'sync-dbs').split(' ')
servers = config.get('aurblup', 'servers').split(' ')
-blacklist = set()
-providers = set()
-repomap = dict()
-
-h = pyalpm.Handle("/", db_path)
-for sync_db in sync_dbs:
- repo = h.register_syncdb(sync_db, pyalpm.SIG_DATABASE_OPTIONAL)
- repo.servers = [server.replace("%s", sync_db) for server in servers]
- t = h.init_transaction()
- repo.update(False)
- t.release()
-
- for pkg in repo.pkgcache:
- blacklist.add(pkg.name)
- [blacklist.add(x) for x in pkg.replaces]
- providers.add((pkg.name, pkg.name))
- repomap[(pkg.name, pkg.name)] = repo.name
- for provision in pkg.provides:
- provisionname = re.sub(r'(<|=|>).*', '', provision)
- providers.add((pkg.name, provisionname))
- repomap[(pkg.name, provisionname)] = repo.name
-
-db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
- passwd=aur_db_pass, db=aur_db_name,
- unix_socket=aur_db_socket, buffered=True)
-cur = db.cursor()
-
-cur.execute("SELECT Name, Provides FROM OfficialProviders")
-oldproviders = set(cur.fetchall())
-
-for pkg, provides in providers.difference(oldproviders):
- repo = repomap[(pkg, provides)]
- cur.execute("INSERT INTO OfficialProviders (Name, Repo, Provides) "
- "VALUES (%s, %s, %s)", [pkg, repo, provides])
-for pkg, provides in oldproviders.difference(providers):
- cur.execute("DELETE FROM OfficialProviders "
- "WHERE Name = %s AND Provides = %s", [pkg, provides])
-
-db.commit()
-db.close()
+
+def main():
+ blacklist = set()
+ providers = set()
+ repomap = dict()
+
+ h = pyalpm.Handle("/", db_path)
+ for sync_db in sync_dbs:
+ repo = h.register_syncdb(sync_db, pyalpm.SIG_DATABASE_OPTIONAL)
+ repo.servers = [server.replace("%s", sync_db) for server in servers]
+ t = h.init_transaction()
+ repo.update(False)
+ t.release()
+
+ for pkg in repo.pkgcache:
+ blacklist.add(pkg.name)
+ [blacklist.add(x) for x in pkg.replaces]
+ providers.add((pkg.name, pkg.name))
+ repomap[(pkg.name, pkg.name)] = repo.name
+ for provision in pkg.provides:
+ provisionname = re.sub(r'(<|=|>).*', '', provision)
+ providers.add((pkg.name, provisionname))
+ repomap[(pkg.name, provisionname)] = repo.name
+
+ db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
+ passwd=aur_db_pass, db=aur_db_name,
+ unix_socket=aur_db_socket, buffered=True)
+ cur = db.cursor()
+
+ cur.execute("SELECT Name, Provides FROM OfficialProviders")
+ oldproviders = set(cur.fetchall())
+
+ for pkg, provides in providers.difference(oldproviders):
+ repo = repomap[(pkg, provides)]
+ cur.execute("INSERT INTO OfficialProviders (Name, Repo, Provides) "
+ "VALUES (%s, %s, %s)", [pkg, repo, provides])
+ for pkg, provides in oldproviders.difference(providers):
+ cur.execute("DELETE FROM OfficialProviders "
+ "WHERE Name = %s AND Provides = %s", [pkg, provides])
+
+ db.commit()
+ db.close()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/scripts/mkpkglists.py b/scripts/mkpkglists.py
index a6f8a19..8cab0a9 100755
--- a/scripts/mkpkglists.py
+++ b/scripts/mkpkglists.py
@@ -17,25 +17,33 @@ aur_db_user = config.get('database', 'user')
aur_db_pass = config.get('database', 'password')
aur_db_socket = config.get('database', 'socket')
-db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
- passwd=aur_db_pass, db=aur_db_name,
- unix_socket=aur_db_socket, buffered=True)
-cur = db.cursor()
-
-datestr = datetime.datetime.utcnow().strftime("%a, %d %b %Y %H:%M:%S GMT")
-pkglist_header = "# AUR package list, generated on " + datestr
-pkgbaselist_header = "# AUR package base list, generated on " + datestr
-
-with gzip.open(docroot + "packages.gz", "w") as f:
- f.write(bytes(pkglist_header + "\n", "UTF-8"))
- cur.execute("SELECT Packages.Name FROM Packages INNER JOIN PackageBases " +
- "ON PackageBases.ID = Packages.PackageBaseID " +
- "WHERE PackageBases.PackagerUID IS NOT NULL")
- f.writelines([bytes(x[0] + "\n", "UTF-8") for x in cur.fetchall()])
-
-with gzip.open(docroot + "pkgbase.gz", "w") as f:
- f.write(bytes(pkgbaselist_header + "\n", "UTF-8"))
- cur.execute("SELECT Name FROM PackageBases WHERE PackagerUID IS NOT NULL")
- f.writelines([bytes(x[0] + "\n", "UTF-8") for x in cur.fetchall()])
-
-db.close()
+
+def main():
+ db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
+ passwd=aur_db_pass, db=aur_db_name,
+ unix_socket=aur_db_socket, buffered=True)
+ cur = db.cursor()
+
+ datestr = datetime.datetime.utcnow().strftime("%a, %d %b %Y %H:%M:%S GMT")
+ pkglist_header = "# AUR package list, generated on " + datestr
+ pkgbaselist_header = "# AUR package base list, generated on " + datestr
+
+ with gzip.open(docroot + "packages.gz", "w") as f:
+ f.write(bytes(pkglist_header + "\n", "UTF-8"))
+ cur.execute("SELECT Packages.Name FROM Packages " +
+ "INNER JOIN PackageBases " +
+ "ON PackageBases.ID = Packages.PackageBaseID " +
+ "WHERE PackageBases.PackagerUID IS NOT NULL")
+ f.writelines([bytes(x[0] + "\n", "UTF-8") for x in cur.fetchall()])
+
+ with gzip.open(docroot + "pkgbase.gz", "w") as f:
+ f.write(bytes(pkgbaselist_header + "\n", "UTF-8"))
+ cur.execute("SELECT Name FROM PackageBases " +
+ "WHERE PackagerUID IS NOT NULL")
+ f.writelines([bytes(x[0] + "\n", "UTF-8") for x in cur.fetchall()])
+
+ db.close()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/scripts/notify.py b/scripts/notify.py
index a640e45..e8210a8 100755
--- a/scripts/notify.py
+++ b/scripts/notify.py
@@ -427,7 +427,7 @@ def tu_vote_reminder(cur, vote_id):
send_notification(to, subject, body, refs)
-if __name__ == '__main__':
+def main():
action = sys.argv[1]
action_map = {
'send-resetkey': send_resetkey,
@@ -454,3 +454,7 @@ if __name__ == '__main__':
db.commit()
db.close()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/scripts/pkgmaint.py b/scripts/pkgmaint.py
index 0eb9422..346b046 100755
--- a/scripts/pkgmaint.py
+++ b/scripts/pkgmaint.py
@@ -13,13 +13,20 @@ aur_db_user = config.get('database', 'user')
aur_db_pass = config.get('database', 'password')
aur_db_socket = config.get('database', 'socket')
-db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
- passwd=aur_db_pass, db=aur_db_name,
- unix_socket=aur_db_socket, buffered=True)
-cur = db.cursor()
-cur.execute("DELETE FROM PackageBases WHERE " +
- "UNIX_TIMESTAMP() - SubmittedTS > 86400 AND PackagerUID IS NULL")
+def main():
+ db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
+ passwd=aur_db_pass, db=aur_db_name,
+ unix_socket=aur_db_socket, buffered=True)
+ cur = db.cursor()
-db.commit()
-db.close()
+ cur.execute("DELETE FROM PackageBases WHERE " +
+ "UNIX_TIMESTAMP() - SubmittedTS > 86400 " +
+ "AND PackagerUID IS NULL")
+
+ db.commit()
+ db.close()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/scripts/popupdate.py b/scripts/popupdate.py
index f3ba513..26d8379 100755
--- a/scripts/popupdate.py
+++ b/scripts/popupdate.py
@@ -13,18 +13,25 @@ aur_db_user = config.get('database', 'user')
aur_db_pass = config.get('database', 'password')
aur_db_socket = config.get('database', 'socket')
-db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
- passwd=aur_db_pass, db=aur_db_name,
- unix_socket=aur_db_socket, buffered=True)
-cur = db.cursor()
-cur.execute("UPDATE PackageBases SET NumVotes = (SELECT COUNT(*) FROM " +
- "PackageVotes WHERE PackageVotes.PackageBaseID = PackageBases.ID)")
+def main():
+ db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
+ passwd=aur_db_pass, db=aur_db_name,
+ unix_socket=aur_db_socket, buffered=True)
+ cur = db.cursor()
-cur.execute("UPDATE PackageBases SET Popularity = (" +
- "SELECT COALESCE(SUM(POWER(0.98, (UNIX_TIMESTAMP() - VoteTS) / 86400)), 0.0) " +
- "FROM PackageVotes WHERE PackageVotes.PackageBaseID = " +
- "PackageBases.ID AND NOT VoteTS IS NULL)")
+ cur.execute("UPDATE PackageBases SET NumVotes = (" +
+ "SELECT COUNT(*) FROM PackageVotes " +
+ "WHERE PackageVotes.PackageBaseID = PackageBases.ID)")
-db.commit()
-db.close()
+ cur.execute("UPDATE PackageBases SET Popularity = (" +
+ "SELECT COALESCE(SUM(POWER(0.98, (UNIX_TIMESTAMP() - VoteTS) / 86400)), 0.0) " +
+ "FROM PackageVotes WHERE PackageVotes.PackageBaseID = " +
+ "PackageBases.ID AND NOT VoteTS IS NULL)")
+
+ db.commit()
+ db.close()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/scripts/tuvotereminder.py b/scripts/tuvotereminder.py
index 0992623..dc16397 100755
--- a/scripts/tuvotereminder.py
+++ b/scripts/tuvotereminder.py
@@ -16,17 +16,23 @@ aur_db_pass = config.get('database', 'password')
aur_db_socket = config.get('database', 'socket')
notify_cmd = config.get('notifications', 'notify-cmd')
-db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
- passwd=aur_db_pass, db=aur_db_name,
- unix_socket=aur_db_socket, buffered=True)
-cur = db.cursor()
-now = int(time.time())
-filter_from = now + 500
-filter_to = now + 172800
+def main():
+ db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
+ passwd=aur_db_pass, db=aur_db_name,
+ unix_socket=aur_db_socket, buffered=True)
+ cur = db.cursor()
-cur.execute("SELECT ID FROM TU_VoteInfo WHERE End >= %s AND End <= %s",
- [filter_from, filter_to])
+ now = int(time.time())
+ filter_from = now + 500
+ filter_to = now + 172800
-for vote_id in [row[0] for row in cur.fetchall()]:
- subprocess.Popen((notify_cmd, 'tu-vote-reminder', str(vote_id)))
+ cur.execute("SELECT ID FROM TU_VoteInfo WHERE End >= %s AND End <= %s",
+ [filter_from, filter_to])
+
+ for vote_id in [row[0] for row in cur.fetchall()]:
+ subprocess.Popen((notify_cmd, 'tu-vote-reminder', str(vote_id)))
+
+
+if __name__ == '__main__':
+ main()