forked from adamm/git-importer
fixed formatting and other suggestions
This commit is contained in:
50
lib/user.py
Normal file
50
lib/user.py
Normal file
@@ -0,0 +1,50 @@
|
||||
FAKE_ACCOUNTS = ('unknown', 'buildservice-autocommit', 'autobuild', '_service')
|
||||
|
||||
|
||||
class User:
|
||||
def parse(self, xml, userid):
|
||||
self.userid = userid
|
||||
self.realname = xml.find("realname").text
|
||||
self.email = xml.find("email").text
|
||||
if self.email is None:
|
||||
self.email = ""
|
||||
|
||||
return self
|
||||
|
||||
def __str__(self):
|
||||
return f"User {self.userid}: {self.realname} {self.email}"
|
||||
|
||||
def __repr__(self):
|
||||
return f"[{self.__str__()}]"
|
||||
|
||||
def import_into_db(self, db):
|
||||
with db.cursor() as cur:
|
||||
cur.execute(
|
||||
"""INSERT INTO users (userid, realname, email)
|
||||
VALUES (%s,%s,%s)""",
|
||||
(
|
||||
self.userid,
|
||||
self.realname,
|
||||
self.email,
|
||||
),
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def lookup(db, userid):
|
||||
with db.cursor() as cur:
|
||||
cur.execute("SELECT * FROM users where userid=%s", (userid,))
|
||||
row = cur.fetchone()
|
||||
if not row:
|
||||
return None
|
||||
return row
|
||||
|
||||
@staticmethod
|
||||
def missing_users(db):
|
||||
with db.cursor() as cur:
|
||||
cur.execute(
|
||||
"""SELECT DISTINCT revisions.userid
|
||||
FROM revisions LEFT JOIN users ON revisions.userid = users.userid
|
||||
WHERE users.userid IS NULL AND revisions.userid NOT IN {}""".format(FAKE_ACCOUNTS)
|
||||
)
|
||||
missing_users = [row[0] for row in cur.fetchall()]
|
||||
return missing_users
|
||||
Reference in New Issue
Block a user