mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
Use config and db in scripts
Instead of using configparser and mysql.connector directly, change all Python scripts to use the config and db Python modules which are now accessible from a common location. Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
This commit is contained in:
parent
dc3fd60715
commit
8c99184f6d
6 changed files with 182 additions and 248 deletions
|
@ -1,22 +1,14 @@
|
||||||
#!/usr/bin/python3
|
#!/usr/bin/python3
|
||||||
|
|
||||||
import configparser
|
|
||||||
import mysql.connector
|
|
||||||
import os
|
|
||||||
import pyalpm
|
import pyalpm
|
||||||
import re
|
import re
|
||||||
|
|
||||||
config = configparser.RawConfigParser()
|
import aurweb.config
|
||||||
config.read(os.path.dirname(os.path.realpath(__file__)) + "/../conf/config")
|
import aurweb.db
|
||||||
|
|
||||||
aur_db_host = config.get('database', 'host')
|
db_path = aurweb.config.get('aurblup', 'db-path')
|
||||||
aur_db_name = config.get('database', 'name')
|
sync_dbs = aurweb.config.get('aurblup', 'sync-dbs').split(' ')
|
||||||
aur_db_user = config.get('database', 'user')
|
servers = aurweb.config.get('aurblup', 'servers').split(' ')
|
||||||
aur_db_pass = config.get('database', 'password')
|
|
||||||
aur_db_socket = config.get('database', 'socket')
|
|
||||||
db_path = config.get('aurblup', 'db-path')
|
|
||||||
sync_dbs = config.get('aurblup', 'sync-dbs').split(' ')
|
|
||||||
servers = config.get('aurblup', 'servers').split(' ')
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
@ -42,24 +34,21 @@ def main():
|
||||||
providers.add((pkg.name, provisionname))
|
providers.add((pkg.name, provisionname))
|
||||||
repomap[(pkg.name, provisionname)] = repo.name
|
repomap[(pkg.name, provisionname)] = repo.name
|
||||||
|
|
||||||
db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
|
conn = aurweb.db.Connection()
|
||||||
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")
|
cur = conn.execute("SELECT Name, Provides FROM OfficialProviders")
|
||||||
oldproviders = set(cur.fetchall())
|
oldproviders = set(cur.fetchall())
|
||||||
|
|
||||||
for pkg, provides in providers.difference(oldproviders):
|
for pkg, provides in providers.difference(oldproviders):
|
||||||
repo = repomap[(pkg, provides)]
|
repo = repomap[(pkg, provides)]
|
||||||
cur.execute("INSERT INTO OfficialProviders (Name, Repo, Provides) "
|
conn.execute("INSERT INTO OfficialProviders (Name, Repo, Provides) "
|
||||||
"VALUES (%s, %s, %s)", [pkg, repo, provides])
|
"VALUES (?, ?, ?)", [pkg, repo, provides])
|
||||||
for pkg, provides in oldproviders.difference(providers):
|
for pkg, provides in oldproviders.difference(providers):
|
||||||
cur.execute("DELETE FROM OfficialProviders "
|
conn.execute("DELETE FROM OfficialProviders "
|
||||||
"WHERE Name = %s AND Provides = %s", [pkg, provides])
|
"WHERE Name = ? AND Provides = ?", [pkg, provides])
|
||||||
|
|
||||||
db.commit()
|
conn.commit()
|
||||||
db.close()
|
conn.close()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
|
@ -1,28 +1,16 @@
|
||||||
#!/usr/bin/python3
|
#!/usr/bin/python3
|
||||||
|
|
||||||
import configparser
|
|
||||||
import datetime
|
import datetime
|
||||||
import gzip
|
import gzip
|
||||||
import mysql.connector
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
import aurweb.db
|
||||||
|
|
||||||
docroot = os.path.dirname(os.path.realpath(__file__)) + "/../web/html/"
|
docroot = os.path.dirname(os.path.realpath(__file__)) + "/../web/html/"
|
||||||
|
|
||||||
config = configparser.RawConfigParser()
|
|
||||||
config.read(os.path.dirname(os.path.realpath(__file__)) + "/../conf/config")
|
|
||||||
|
|
||||||
aur_db_host = config.get('database', 'host')
|
|
||||||
aur_db_name = config.get('database', 'name')
|
|
||||||
aur_db_user = config.get('database', 'user')
|
|
||||||
aur_db_pass = config.get('database', 'password')
|
|
||||||
aur_db_socket = config.get('database', 'socket')
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
|
conn = aurweb.db.Connection()
|
||||||
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")
|
datestr = datetime.datetime.utcnow().strftime("%a, %d %b %Y %H:%M:%S GMT")
|
||||||
pkglist_header = "# AUR package list, generated on " + datestr
|
pkglist_header = "# AUR package list, generated on " + datestr
|
||||||
|
@ -30,7 +18,7 @@ def main():
|
||||||
|
|
||||||
with gzip.open(docroot + "packages.gz", "w") as f:
|
with gzip.open(docroot + "packages.gz", "w") as f:
|
||||||
f.write(bytes(pkglist_header + "\n", "UTF-8"))
|
f.write(bytes(pkglist_header + "\n", "UTF-8"))
|
||||||
cur.execute("SELECT Packages.Name FROM Packages " +
|
cur = conn.execute("SELECT Packages.Name FROM Packages " +
|
||||||
"INNER JOIN PackageBases " +
|
"INNER JOIN PackageBases " +
|
||||||
"ON PackageBases.ID = Packages.PackageBaseID " +
|
"ON PackageBases.ID = Packages.PackageBaseID " +
|
||||||
"WHERE PackageBases.PackagerUID IS NOT NULL")
|
"WHERE PackageBases.PackagerUID IS NOT NULL")
|
||||||
|
@ -38,11 +26,11 @@ def main():
|
||||||
|
|
||||||
with gzip.open(docroot + "pkgbase.gz", "w") as f:
|
with gzip.open(docroot + "pkgbase.gz", "w") as f:
|
||||||
f.write(bytes(pkgbaselist_header + "\n", "UTF-8"))
|
f.write(bytes(pkgbaselist_header + "\n", "UTF-8"))
|
||||||
cur.execute("SELECT Name FROM PackageBases " +
|
cur = conn.execute("SELECT Name FROM PackageBases " +
|
||||||
"WHERE PackagerUID IS NOT NULL")
|
"WHERE PackagerUID IS NOT NULL")
|
||||||
f.writelines([bytes(x[0] + "\n", "UTF-8") for x in cur.fetchall()])
|
f.writelines([bytes(x[0] + "\n", "UTF-8") for x in cur.fetchall()])
|
||||||
|
|
||||||
db.close()
|
conn.close()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
|
@ -1,28 +1,19 @@
|
||||||
#!/usr/bin/python3
|
#!/usr/bin/python3
|
||||||
|
|
||||||
import configparser
|
|
||||||
import email.mime.text
|
import email.mime.text
|
||||||
import mysql.connector
|
|
||||||
import os
|
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
import textwrap
|
import textwrap
|
||||||
|
|
||||||
config = configparser.RawConfigParser()
|
import aurweb.config
|
||||||
config.read(os.path.dirname(os.path.realpath(__file__)) + '/../conf/config')
|
import aurweb.db
|
||||||
|
|
||||||
aur_db_host = config.get('database', 'host')
|
aur_location = aurweb.config.get('options', 'aur_location')
|
||||||
aur_db_name = config.get('database', 'name')
|
aur_request_ml = aurweb.config.get('options', 'aur_request_ml')
|
||||||
aur_db_user = config.get('database', 'user')
|
|
||||||
aur_db_pass = config.get('database', 'password')
|
|
||||||
aur_db_socket = config.get('database', 'socket')
|
|
||||||
|
|
||||||
aur_location = config.get('options', 'aur_location')
|
sendmail = aurweb.config.get('notifications', 'sendmail')
|
||||||
aur_request_ml = config.get('options', 'aur_request_ml')
|
sender = aurweb.config.get('notifications', 'sender')
|
||||||
|
reply_to = aurweb.config.get('notifications', 'reply-to')
|
||||||
sendmail = config.get('notifications', 'sendmail')
|
|
||||||
sender = config.get('notifications', 'sender')
|
|
||||||
reply_to = config.get('notifications', 'reply-to')
|
|
||||||
|
|
||||||
|
|
||||||
def headers_cc(cclist):
|
def headers_cc(cclist):
|
||||||
|
@ -60,120 +51,127 @@ def send_notification(to, subject, body, refs, headers={}):
|
||||||
p.communicate(msg.as_bytes())
|
p.communicate(msg.as_bytes())
|
||||||
|
|
||||||
|
|
||||||
def username_from_id(cur, uid):
|
def username_from_id(conn, uid):
|
||||||
cur.execute('SELECT UserName FROM Users WHERE ID = %s', [uid])
|
cur = conn.execute('SELECT UserName FROM Users WHERE ID = ?', [uid])
|
||||||
return cur.fetchone()[0]
|
return cur.fetchone()[0]
|
||||||
|
|
||||||
|
|
||||||
def pkgbase_from_id(cur, pkgbase_id):
|
def pkgbase_from_id(conn, pkgbase_id):
|
||||||
cur.execute('SELECT Name FROM PackageBases WHERE ID = %s', [pkgbase_id])
|
cur = conn.execute('SELECT Name FROM PackageBases WHERE ID = ?',
|
||||||
|
[pkgbase_id])
|
||||||
return cur.fetchone()[0]
|
return cur.fetchone()[0]
|
||||||
|
|
||||||
|
|
||||||
def pkgbase_from_pkgreq(cur, reqid):
|
def pkgbase_from_pkgreq(conn, reqid):
|
||||||
cur.execute('SELECT PackageBaseID FROM PackageRequests WHERE ID = %s',
|
cur = conn.execute('SELECT PackageBaseID FROM PackageRequests ' +
|
||||||
[reqid])
|
'WHERE ID = ?', [reqid])
|
||||||
return cur.fetchone()[0]
|
return cur.fetchone()[0]
|
||||||
|
|
||||||
|
|
||||||
def get_user_email(cur, uid):
|
def get_user_email(conn, uid):
|
||||||
cur.execute('SELECT Email FROM Users WHERE ID = %s', [uid])
|
cur = conn.execute('SELECT Email FROM Users WHERE ID = ?', [uid])
|
||||||
return cur.fetchone()[0]
|
return cur.fetchone()[0]
|
||||||
|
|
||||||
|
|
||||||
def get_maintainer_email(cur, pkgbase_id):
|
def get_maintainer_email(conn, pkgbase_id):
|
||||||
cur.execute('SELECT Users.Email FROM Users ' +
|
cur = conn.execute('SELECT Users.Email FROM Users ' +
|
||||||
'INNER JOIN PackageBases ' +
|
'INNER JOIN PackageBases ' +
|
||||||
'ON PackageBases.MaintainerUID = Users.ID WHERE ' +
|
'ON PackageBases.MaintainerUID = Users.ID WHERE ' +
|
||||||
'PackageBases.ID = %s', [pkgbase_id])
|
'PackageBases.ID = ?', [pkgbase_id])
|
||||||
return cur.fetchone()[0]
|
return cur.fetchone()[0]
|
||||||
|
|
||||||
|
|
||||||
def get_recipients(cur, pkgbase_id, uid):
|
def get_recipients(conn, pkgbase_id, uid):
|
||||||
cur.execute('SELECT DISTINCT Users.Email FROM Users ' +
|
cur = conn.execute('SELECT DISTINCT Users.Email FROM Users ' +
|
||||||
'INNER JOIN PackageNotifications ' +
|
'INNER JOIN PackageNotifications ' +
|
||||||
'ON PackageNotifications.UserID = Users.ID WHERE ' +
|
'ON PackageNotifications.UserID = Users.ID WHERE ' +
|
||||||
'PackageNotifications.UserID != %s AND ' +
|
'PackageNotifications.UserID != ? AND ' +
|
||||||
'PackageNotifications.PackageBaseID = %s', [uid, pkgbase_id])
|
'PackageNotifications.PackageBaseID = ?',
|
||||||
|
[uid, pkgbase_id])
|
||||||
return [row[0] for row in cur.fetchall()]
|
return [row[0] for row in cur.fetchall()]
|
||||||
|
|
||||||
|
|
||||||
def get_comment_recipients(cur, pkgbase_id, uid):
|
def get_comment_recipients(conn, pkgbase_id, uid):
|
||||||
cur.execute('SELECT DISTINCT Users.Email FROM Users ' +
|
cur = conn.execute('SELECT DISTINCT Users.Email FROM Users ' +
|
||||||
'INNER JOIN PackageNotifications ' +
|
'INNER JOIN PackageNotifications ' +
|
||||||
'ON PackageNotifications.UserID = Users.ID WHERE ' +
|
'ON PackageNotifications.UserID = Users.ID WHERE ' +
|
||||||
'Users.CommentNotify = 1 AND ' +
|
'Users.CommentNotify = 1 AND ' +
|
||||||
'PackageNotifications.UserID != %s AND ' +
|
'PackageNotifications.UserID != ? AND ' +
|
||||||
'PackageNotifications.PackageBaseID = %s', [uid, pkgbase_id])
|
'PackageNotifications.PackageBaseID = ?',
|
||||||
|
[uid, pkgbase_id])
|
||||||
return [row[0] for row in cur.fetchall()]
|
return [row[0] for row in cur.fetchall()]
|
||||||
|
|
||||||
|
|
||||||
def get_update_recipients(cur, pkgbase_id, uid):
|
def get_update_recipients(conn, pkgbase_id, uid):
|
||||||
cur.execute('SELECT DISTINCT Users.Email FROM Users ' +
|
cur = conn.execute('SELECT DISTINCT Users.Email FROM Users ' +
|
||||||
'INNER JOIN PackageNotifications ' +
|
'INNER JOIN PackageNotifications ' +
|
||||||
'ON PackageNotifications.UserID = Users.ID WHERE ' +
|
'ON PackageNotifications.UserID = Users.ID WHERE ' +
|
||||||
'Users.UpdateNotify = 1 AND ' +
|
'Users.UpdateNotify = 1 AND ' +
|
||||||
'PackageNotifications.UserID != %s AND ' +
|
'PackageNotifications.UserID != ? AND ' +
|
||||||
'PackageNotifications.PackageBaseID = %s', [uid, pkgbase_id])
|
'PackageNotifications.PackageBaseID = ?',
|
||||||
|
[uid, pkgbase_id])
|
||||||
return [row[0] for row in cur.fetchall()]
|
return [row[0] for row in cur.fetchall()]
|
||||||
|
|
||||||
|
|
||||||
def get_ownership_recipients(cur, pkgbase_id, uid):
|
def get_ownership_recipients(conn, pkgbase_id, uid):
|
||||||
cur.execute('SELECT DISTINCT Users.Email FROM Users ' +
|
cur = conn.execute('SELECT DISTINCT Users.Email FROM Users ' +
|
||||||
'INNER JOIN PackageNotifications ' +
|
'INNER JOIN PackageNotifications ' +
|
||||||
'ON PackageNotifications.UserID = Users.ID WHERE ' +
|
'ON PackageNotifications.UserID = Users.ID WHERE ' +
|
||||||
'Users.OwnershipNotify = 1 AND ' +
|
'Users.OwnershipNotify = 1 AND ' +
|
||||||
'PackageNotifications.UserID != %s AND ' +
|
'PackageNotifications.UserID != ? AND ' +
|
||||||
'PackageNotifications.PackageBaseID = %s', [uid, pkgbase_id])
|
'PackageNotifications.PackageBaseID = ?',
|
||||||
|
[uid, pkgbase_id])
|
||||||
return [row[0] for row in cur.fetchall()]
|
return [row[0] for row in cur.fetchall()]
|
||||||
|
|
||||||
|
|
||||||
def get_request_recipients(cur, reqid):
|
def get_request_recipients(conn, reqid):
|
||||||
cur.execute('SELECT DISTINCT Users.Email FROM PackageRequests ' +
|
cur = conn.execute('SELECT DISTINCT Users.Email FROM PackageRequests ' +
|
||||||
'INNER JOIN PackageBases ' +
|
'INNER JOIN PackageBases ' +
|
||||||
'ON PackageBases.ID = PackageRequests.PackageBaseID ' +
|
'ON PackageBases.ID = PackageRequests.PackageBaseID ' +
|
||||||
'INNER JOIN Users ' +
|
'INNER JOIN Users ' +
|
||||||
'ON Users.ID = PackageRequests.UsersID ' +
|
'ON Users.ID = PackageRequests.UsersID ' +
|
||||||
'OR Users.ID = PackageBases.MaintainerUID ' +
|
'OR Users.ID = PackageBases.MaintainerUID ' +
|
||||||
'WHERE PackageRequests.ID = %s', [reqid])
|
'WHERE PackageRequests.ID = ?', [reqid])
|
||||||
return [row[0] for row in cur.fetchall()]
|
return [row[0] for row in cur.fetchall()]
|
||||||
|
|
||||||
|
|
||||||
def get_tu_vote_reminder_recipients(cur, vote_id):
|
def get_tu_vote_reminder_recipients(conn, vote_id):
|
||||||
cur.execute('SELECT Users.Email FROM Users WHERE AccountTypeID = 2 ' +
|
cur = conn.execute('SELECT Users.Email FROM Users ' +
|
||||||
|
'WHERE AccountTypeID = 2 ' +
|
||||||
'EXCEPT SELECT Users.Email FROM Users ' +
|
'EXCEPT SELECT Users.Email FROM Users ' +
|
||||||
'INNER JOIN TU_Votes ' +
|
'INNER JOIN TU_Votes ' +
|
||||||
'ON TU_Votes.UserID = Users.ID ' +
|
'ON TU_Votes.UserID = Users.ID ' +
|
||||||
'WHERE TU_Votes.VoteID = %s', [vote_id])
|
'WHERE TU_Votes.VoteID = ?', [vote_id])
|
||||||
return [row[0] for row in cur.fetchall()]
|
return [row[0] for row in cur.fetchall()]
|
||||||
|
|
||||||
|
|
||||||
def get_comment(cur, comment_id):
|
def get_comment(conn, comment_id):
|
||||||
cur.execute('SELECT Comments FROM PackageComments WHERE ID = %s',
|
cur = conn.execute('SELECT Comments FROM PackageComments WHERE ID = ?',
|
||||||
[comment_id])
|
[comment_id])
|
||||||
return cur.fetchone()[0]
|
return cur.fetchone()[0]
|
||||||
|
|
||||||
|
|
||||||
def get_flagger_comment(cur, pkgbase_id):
|
def get_flagger_comment(conn, pkgbase_id):
|
||||||
cur.execute('SELECT FlaggerComment FROM PackageBases WHERE ID = %s',
|
cur = conn.execute('SELECT FlaggerComment FROM PackageBases WHERE ID = ?',
|
||||||
[pkgbase_id])
|
[pkgbase_id])
|
||||||
return cur.fetchone()[0]
|
return cur.fetchone()[0]
|
||||||
|
|
||||||
|
|
||||||
def get_request_comment(cur, reqid):
|
def get_request_comment(conn, reqid):
|
||||||
cur.execute('SELECT Comments FROM PackageRequests WHERE ID = %s', [reqid])
|
cur = conn.execute('SELECT Comments FROM PackageRequests WHERE ID = ?',
|
||||||
return cur.fetchone()[0]
|
|
||||||
|
|
||||||
|
|
||||||
def get_request_closure_comment(cur, reqid):
|
|
||||||
cur.execute('SELECT ClosureComment FROM PackageRequests WHERE ID = %s',
|
|
||||||
[reqid])
|
[reqid])
|
||||||
return cur.fetchone()[0]
|
return cur.fetchone()[0]
|
||||||
|
|
||||||
|
|
||||||
def send_resetkey(cur, uid):
|
def get_request_closure_comment(conn, reqid):
|
||||||
cur.execute('SELECT UserName, Email, ResetKey FROM Users WHERE ID = %s',
|
cur = conn.execute('SELECT ClosureComment FROM PackageRequests ' +
|
||||||
[uid])
|
'WHERE ID = ?', [reqid])
|
||||||
|
return cur.fetchone()[0]
|
||||||
|
|
||||||
|
|
||||||
|
def send_resetkey(conn, uid):
|
||||||
|
cur = conn.execute('SELECT UserName, Email, ResetKey FROM Users ' +
|
||||||
|
'WHERE ID = ?', [uid])
|
||||||
username, to, resetkey = cur.fetchone()
|
username, to, resetkey = cur.fetchone()
|
||||||
|
|
||||||
subject = 'AUR Password Reset'
|
subject = 'AUR Password Reset'
|
||||||
|
@ -186,9 +184,9 @@ def send_resetkey(cur, uid):
|
||||||
send_notification([to], subject, body, refs)
|
send_notification([to], subject, body, refs)
|
||||||
|
|
||||||
|
|
||||||
def welcome(cur, uid):
|
def welcome(conn, uid):
|
||||||
cur.execute('SELECT UserName, Email, ResetKey FROM Users WHERE ID = %s',
|
cur = conn.execute('SELECT UserName, Email, ResetKey FROM Users ' +
|
||||||
[uid])
|
'WHERE ID = ?', [uid])
|
||||||
username, to, resetkey = cur.fetchone()
|
username, to, resetkey = cur.fetchone()
|
||||||
|
|
||||||
subject = 'Welcome to the Arch User Repository'
|
subject = 'Welcome to the Arch User Repository'
|
||||||
|
@ -201,11 +199,11 @@ def welcome(cur, uid):
|
||||||
send_notification([to], subject, body, refs)
|
send_notification([to], subject, body, refs)
|
||||||
|
|
||||||
|
|
||||||
def comment(cur, uid, pkgbase_id, comment_id):
|
def comment(conn, uid, pkgbase_id, comment_id):
|
||||||
user = username_from_id(cur, uid)
|
user = username_from_id(conn, uid)
|
||||||
pkgbase = pkgbase_from_id(cur, pkgbase_id)
|
pkgbase = pkgbase_from_id(conn, pkgbase_id)
|
||||||
to = get_comment_recipients(cur, pkgbase_id, uid)
|
to = get_comment_recipients(conn, pkgbase_id, uid)
|
||||||
text = get_comment(cur, comment_id)
|
text = get_comment(conn, comment_id)
|
||||||
|
|
||||||
user_uri = aur_location + '/account/' + user + '/'
|
user_uri = aur_location + '/account/' + user + '/'
|
||||||
pkgbase_uri = aur_location + '/pkgbase/' + pkgbase + '/'
|
pkgbase_uri = aur_location + '/pkgbase/' + pkgbase + '/'
|
||||||
|
@ -224,10 +222,10 @@ def comment(cur, uid, pkgbase_id, comment_id):
|
||||||
send_notification(to, subject, body, refs, headers)
|
send_notification(to, subject, body, refs, headers)
|
||||||
|
|
||||||
|
|
||||||
def update(cur, uid, pkgbase_id):
|
def update(conn, uid, pkgbase_id):
|
||||||
user = username_from_id(cur, uid)
|
user = username_from_id(conn, uid)
|
||||||
pkgbase = pkgbase_from_id(cur, pkgbase_id)
|
pkgbase = pkgbase_from_id(conn, pkgbase_id)
|
||||||
to = get_update_recipients(cur, pkgbase_id, uid)
|
to = get_update_recipients(conn, pkgbase_id, uid)
|
||||||
|
|
||||||
user_uri = aur_location + '/account/' + user + '/'
|
user_uri = aur_location + '/account/' + user + '/'
|
||||||
pkgbase_uri = aur_location + '/pkgbase/' + pkgbase + '/'
|
pkgbase_uri = aur_location + '/pkgbase/' + pkgbase + '/'
|
||||||
|
@ -246,11 +244,11 @@ def update(cur, uid, pkgbase_id):
|
||||||
send_notification(to, subject, body, refs, headers)
|
send_notification(to, subject, body, refs, headers)
|
||||||
|
|
||||||
|
|
||||||
def flag(cur, uid, pkgbase_id):
|
def flag(conn, uid, pkgbase_id):
|
||||||
user = username_from_id(cur, uid)
|
user = username_from_id(conn, uid)
|
||||||
pkgbase = pkgbase_from_id(cur, pkgbase_id)
|
pkgbase = pkgbase_from_id(conn, pkgbase_id)
|
||||||
to = [get_maintainer_email(cur, pkgbase_id)]
|
to = [get_maintainer_email(conn, pkgbase_id)]
|
||||||
text = get_flagger_comment(cur, pkgbase_id)
|
text = get_flagger_comment(conn, pkgbase_id)
|
||||||
|
|
||||||
user_uri = aur_location + '/account/' + user + '/'
|
user_uri = aur_location + '/account/' + user + '/'
|
||||||
pkgbase_uri = aur_location + '/pkgbase/' + pkgbase + '/'
|
pkgbase_uri = aur_location + '/pkgbase/' + pkgbase + '/'
|
||||||
|
@ -265,10 +263,10 @@ def flag(cur, uid, pkgbase_id):
|
||||||
send_notification(to, subject, body, refs)
|
send_notification(to, subject, body, refs)
|
||||||
|
|
||||||
|
|
||||||
def adopt(cur, pkgbase_id, uid):
|
def adopt(conn, pkgbase_id, uid):
|
||||||
user = username_from_id(cur, uid)
|
user = username_from_id(conn, uid)
|
||||||
pkgbase = pkgbase_from_id(cur, pkgbase_id)
|
pkgbase = pkgbase_from_id(conn, pkgbase_id)
|
||||||
to = get_ownership_recipients(cur, pkgbase_id, uid)
|
to = get_ownership_recipients(conn, pkgbase_id, uid)
|
||||||
|
|
||||||
user_uri = aur_location + '/account/' + user + '/'
|
user_uri = aur_location + '/account/' + user + '/'
|
||||||
pkgbase_uri = aur_location + '/pkgbase/' + pkgbase + '/'
|
pkgbase_uri = aur_location + '/pkgbase/' + pkgbase + '/'
|
||||||
|
@ -281,10 +279,10 @@ def adopt(cur, pkgbase_id, uid):
|
||||||
send_notification(to, subject, body, refs)
|
send_notification(to, subject, body, refs)
|
||||||
|
|
||||||
|
|
||||||
def disown(cur, pkgbase_id, uid):
|
def disown(conn, pkgbase_id, uid):
|
||||||
user = username_from_id(cur, uid)
|
user = username_from_id(conn, uid)
|
||||||
pkgbase = pkgbase_from_id(cur, pkgbase_id)
|
pkgbase = pkgbase_from_id(conn, pkgbase_id)
|
||||||
to = get_ownership_recipients(cur, pkgbase_id, uid)
|
to = get_ownership_recipients(conn, pkgbase_id, uid)
|
||||||
|
|
||||||
user_uri = aur_location + '/account/' + user + '/'
|
user_uri = aur_location + '/account/' + user + '/'
|
||||||
pkgbase_uri = aur_location + '/pkgbase/' + pkgbase + '/'
|
pkgbase_uri = aur_location + '/pkgbase/' + pkgbase + '/'
|
||||||
|
@ -297,9 +295,9 @@ def disown(cur, pkgbase_id, uid):
|
||||||
send_notification(to, subject, body, refs)
|
send_notification(to, subject, body, refs)
|
||||||
|
|
||||||
|
|
||||||
def comaintainer_add(cur, pkgbase_id, uid):
|
def comaintainer_add(conn, pkgbase_id, uid):
|
||||||
pkgbase = pkgbase_from_id(cur, pkgbase_id)
|
pkgbase = pkgbase_from_id(conn, pkgbase_id)
|
||||||
to = [get_user_email(cur, uid)]
|
to = [get_user_email(conn, uid)]
|
||||||
|
|
||||||
pkgbase_uri = aur_location + '/pkgbase/' + pkgbase + '/'
|
pkgbase_uri = aur_location + '/pkgbase/' + pkgbase + '/'
|
||||||
|
|
||||||
|
@ -310,9 +308,9 @@ def comaintainer_add(cur, pkgbase_id, uid):
|
||||||
send_notification(to, subject, body, refs)
|
send_notification(to, subject, body, refs)
|
||||||
|
|
||||||
|
|
||||||
def comaintainer_remove(cur, pkgbase_id, uid):
|
def comaintainer_remove(conn, pkgbase_id, uid):
|
||||||
pkgbase = pkgbase_from_id(cur, pkgbase_id)
|
pkgbase = pkgbase_from_id(conn, pkgbase_id)
|
||||||
to = [get_user_email(cur, uid)]
|
to = [get_user_email(conn, uid)]
|
||||||
|
|
||||||
pkgbase_uri = aur_location + '/pkgbase/' + pkgbase + '/'
|
pkgbase_uri = aur_location + '/pkgbase/' + pkgbase + '/'
|
||||||
|
|
||||||
|
@ -324,12 +322,12 @@ def comaintainer_remove(cur, pkgbase_id, uid):
|
||||||
send_notification(to, subject, body, refs)
|
send_notification(to, subject, body, refs)
|
||||||
|
|
||||||
|
|
||||||
def delete(cur, uid, old_pkgbase_id, new_pkgbase_id=None):
|
def delete(conn, uid, old_pkgbase_id, new_pkgbase_id=None):
|
||||||
user = username_from_id(cur, uid)
|
user = username_from_id(conn, uid)
|
||||||
old_pkgbase = pkgbase_from_id(cur, old_pkgbase_id)
|
old_pkgbase = pkgbase_from_id(conn, old_pkgbase_id)
|
||||||
if new_pkgbase_id:
|
if new_pkgbase_id:
|
||||||
new_pkgbase = pkgbase_from_id(cur, new_pkgbase_id)
|
new_pkgbase = pkgbase_from_id(conn, new_pkgbase_id)
|
||||||
to = get_recipients(cur, old_pkgbase_id, uid)
|
to = get_recipients(conn, old_pkgbase_id, uid)
|
||||||
|
|
||||||
user_uri = aur_location + '/account/' + user + '/'
|
user_uri = aur_location + '/account/' + user + '/'
|
||||||
pkgbase_uri = aur_location + '/pkgbase/' + old_pkgbase + '/'
|
pkgbase_uri = aur_location + '/pkgbase/' + old_pkgbase + '/'
|
||||||
|
@ -354,12 +352,12 @@ def delete(cur, uid, old_pkgbase_id, new_pkgbase_id=None):
|
||||||
send_notification(to, subject, body, refs)
|
send_notification(to, subject, body, refs)
|
||||||
|
|
||||||
|
|
||||||
def request_open(cur, uid, reqid, reqtype, pkgbase_id, merge_into=None):
|
def request_open(conn, uid, reqid, reqtype, pkgbase_id, merge_into=None):
|
||||||
user = username_from_id(cur, uid)
|
user = username_from_id(conn, uid)
|
||||||
pkgbase = pkgbase_from_id(cur, pkgbase_id)
|
pkgbase = pkgbase_from_id(conn, pkgbase_id)
|
||||||
to = [aur_request_ml]
|
to = [aur_request_ml]
|
||||||
cc = get_request_recipients(cur, reqid)
|
cc = get_request_recipients(conn, reqid)
|
||||||
text = get_request_comment(cur, reqid)
|
text = get_request_comment(conn, reqid)
|
||||||
|
|
||||||
user_uri = aur_location + '/account/' + user + '/'
|
user_uri = aur_location + '/account/' + user + '/'
|
||||||
pkgbase_uri = aur_location + '/pkgbase/' + pkgbase + '/'
|
pkgbase_uri = aur_location + '/pkgbase/' + pkgbase + '/'
|
||||||
|
@ -388,14 +386,14 @@ def request_open(cur, uid, reqid, reqtype, pkgbase_id, merge_into=None):
|
||||||
send_notification(to, subject, body, refs, headers)
|
send_notification(to, subject, body, refs, headers)
|
||||||
|
|
||||||
|
|
||||||
def request_close(cur, uid, reqid, reason):
|
def request_close(conn, uid, reqid, reason):
|
||||||
to = [aur_request_ml]
|
to = [aur_request_ml]
|
||||||
cc = get_request_recipients(cur, reqid)
|
cc = get_request_recipients(conn, reqid)
|
||||||
text = get_request_closure_comment(cur, reqid)
|
text = get_request_closure_comment(conn, reqid)
|
||||||
|
|
||||||
subject = '[PRQ#%d] Request %s' % (int(reqid), reason.title())
|
subject = '[PRQ#%d] Request %s' % (int(reqid), reason.title())
|
||||||
if int(uid):
|
if int(uid):
|
||||||
user = username_from_id(cur, uid)
|
user = username_from_id(conn, uid)
|
||||||
user_uri = aur_location + '/account/' + user + '/'
|
user_uri = aur_location + '/account/' + user + '/'
|
||||||
body = 'Request #%d has been %s by %s [1]' % (int(reqid), reason, user)
|
body = 'Request #%d has been %s by %s [1]' % (int(reqid), reason, user)
|
||||||
refs = '[1] ' + user_uri
|
refs = '[1] ' + user_uri
|
||||||
|
@ -414,8 +412,8 @@ def request_close(cur, uid, reqid, reason):
|
||||||
send_notification(to, subject, body, refs, headers)
|
send_notification(to, subject, body, refs, headers)
|
||||||
|
|
||||||
|
|
||||||
def tu_vote_reminder(cur, vote_id):
|
def tu_vote_reminder(conn, vote_id):
|
||||||
to = get_tu_vote_reminder_recipients(cur, vote_id)
|
to = get_tu_vote_reminder_recipients(conn, vote_id)
|
||||||
|
|
||||||
vote_uri = aur_location + '/tu/?id=' + vote_id
|
vote_uri = aur_location + '/tu/?id=' + vote_id
|
||||||
|
|
||||||
|
@ -445,15 +443,12 @@ def main():
|
||||||
'tu-vote-reminder': tu_vote_reminder,
|
'tu-vote-reminder': tu_vote_reminder,
|
||||||
}
|
}
|
||||||
|
|
||||||
db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
|
conn = aurweb.db.Connection()
|
||||||
passwd=aur_db_pass, db=aur_db_name,
|
|
||||||
unix_socket=aur_db_socket, buffered=True)
|
|
||||||
cur = db.cursor()
|
|
||||||
|
|
||||||
action_map[action](cur, *sys.argv[2:])
|
action_map[action](conn, *sys.argv[2:])
|
||||||
|
|
||||||
db.commit()
|
conn.commit()
|
||||||
db.close()
|
conn.close()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
|
@ -1,31 +1,17 @@
|
||||||
#!/usr/bin/python3
|
#!/usr/bin/python3
|
||||||
|
|
||||||
import configparser
|
import aurweb.db
|
||||||
import mysql.connector
|
|
||||||
import os
|
|
||||||
|
|
||||||
config = configparser.RawConfigParser()
|
|
||||||
config.read(os.path.dirname(os.path.realpath(__file__)) + "/../conf/config")
|
|
||||||
|
|
||||||
aur_db_host = config.get('database', 'host')
|
|
||||||
aur_db_name = config.get('database', 'name')
|
|
||||||
aur_db_user = config.get('database', 'user')
|
|
||||||
aur_db_pass = config.get('database', 'password')
|
|
||||||
aur_db_socket = config.get('database', 'socket')
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
|
conn = aurweb.db.Connection()
|
||||||
passwd=aur_db_pass, db=aur_db_name,
|
|
||||||
unix_socket=aur_db_socket, buffered=True)
|
|
||||||
cur = db.cursor()
|
|
||||||
|
|
||||||
cur.execute("DELETE FROM PackageBases WHERE " +
|
conn.execute("DELETE FROM PackageBases WHERE " +
|
||||||
"UNIX_TIMESTAMP() - SubmittedTS > 86400 " +
|
"UNIX_TIMESTAMP() - SubmittedTS > 86400 " +
|
||||||
"AND PackagerUID IS NULL")
|
"AND PackagerUID IS NULL")
|
||||||
|
|
||||||
db.commit()
|
conn.commit()
|
||||||
db.close()
|
conn.close()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
|
@ -1,36 +1,22 @@
|
||||||
#!/usr/bin/python3
|
#!/usr/bin/python3
|
||||||
|
|
||||||
import configparser
|
import aurweb.db
|
||||||
import mysql.connector
|
|
||||||
import os
|
|
||||||
|
|
||||||
config = configparser.RawConfigParser()
|
|
||||||
config.read(os.path.dirname(os.path.realpath(__file__)) + "/../conf/config")
|
|
||||||
|
|
||||||
aur_db_host = config.get('database', 'host')
|
|
||||||
aur_db_name = config.get('database', 'name')
|
|
||||||
aur_db_user = config.get('database', 'user')
|
|
||||||
aur_db_pass = config.get('database', 'password')
|
|
||||||
aur_db_socket = config.get('database', 'socket')
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
|
conn = aurweb.db.Connection()
|
||||||
passwd=aur_db_pass, db=aur_db_name,
|
|
||||||
unix_socket=aur_db_socket, buffered=True)
|
|
||||||
cur = db.cursor()
|
|
||||||
|
|
||||||
cur.execute("UPDATE PackageBases SET NumVotes = (" +
|
conn.execute("UPDATE PackageBases SET NumVotes = (" +
|
||||||
"SELECT COUNT(*) FROM PackageVotes " +
|
"SELECT COUNT(*) FROM PackageVotes " +
|
||||||
"WHERE PackageVotes.PackageBaseID = PackageBases.ID)")
|
"WHERE PackageVotes.PackageBaseID = PackageBases.ID)")
|
||||||
|
|
||||||
cur.execute("UPDATE PackageBases SET Popularity = (" +
|
conn.execute("UPDATE PackageBases SET Popularity = (" +
|
||||||
"SELECT COALESCE(SUM(POWER(0.98, (UNIX_TIMESTAMP() - VoteTS) / 86400)), 0.0) " +
|
"SELECT COALESCE(SUM(POWER(0.98, (UNIX_TIMESTAMP() - VoteTS) / 86400)), 0.0) " +
|
||||||
"FROM PackageVotes WHERE PackageVotes.PackageBaseID = " +
|
"FROM PackageVotes WHERE PackageVotes.PackageBaseID = " +
|
||||||
"PackageBases.ID AND NOT VoteTS IS NULL)")
|
"PackageBases.ID AND NOT VoteTS IS NULL)")
|
||||||
|
|
||||||
db.commit()
|
conn.commit()
|
||||||
db.close()
|
conn.close()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
|
@ -1,33 +1,23 @@
|
||||||
#!/usr/bin/python3
|
#!/usr/bin/python3
|
||||||
|
|
||||||
import configparser
|
|
||||||
import mysql.connector
|
|
||||||
import os
|
|
||||||
import subprocess
|
import subprocess
|
||||||
import time
|
import time
|
||||||
|
|
||||||
config = configparser.RawConfigParser()
|
import aurweb.config
|
||||||
config.read(os.path.dirname(os.path.realpath(__file__)) + "/../conf/config")
|
import aurweb.db
|
||||||
|
|
||||||
aur_db_host = config.get('database', 'host')
|
notify_cmd = aurweb.config.get('notifications', 'notify-cmd')
|
||||||
aur_db_name = config.get('database', 'name')
|
|
||||||
aur_db_user = config.get('database', 'user')
|
|
||||||
aur_db_pass = config.get('database', 'password')
|
|
||||||
aur_db_socket = config.get('database', 'socket')
|
|
||||||
notify_cmd = config.get('notifications', 'notify-cmd')
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
|
conn = aurweb.db.Connection()
|
||||||
passwd=aur_db_pass, db=aur_db_name,
|
|
||||||
unix_socket=aur_db_socket, buffered=True)
|
|
||||||
cur = db.cursor()
|
|
||||||
|
|
||||||
now = int(time.time())
|
now = int(time.time())
|
||||||
filter_from = now + 500
|
filter_from = now + 500
|
||||||
filter_to = now + 172800
|
filter_to = now + 172800
|
||||||
|
|
||||||
cur.execute("SELECT ID FROM TU_VoteInfo WHERE End >= %s AND End <= %s",
|
cur = conn.execute("SELECT ID FROM TU_VoteInfo " +
|
||||||
|
"WHERE End >= ? AND End <= ?",
|
||||||
[filter_from, filter_to])
|
[filter_from, filter_to])
|
||||||
|
|
||||||
for vote_id in [row[0] for row in cur.fetchall()]:
|
for vote_id in [row[0] for row in cur.fetchall()]:
|
||||||
|
|
Loading…
Add table
Reference in a new issue