Python script that scrapes rom sites (right now only vimm.net) to find and download ROMs
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

93 lines
3.6 KiB

import sqlite3
from dbHandler import dbConnection
class Console:
console_id = 0
name = ""
description = ""
thumbnail_uri = ""
rating = 0
def __init__(self, console_id=None, name=None):
if console_id is None and name is not None:
self.name = name
try:
sqliteConnection = sqlite3.connect('Romscraper.db')
cursor = sqliteConnection.cursor()
# print("Connected")
query = "SELECT * FROM Consoles WHERE name=?"
cursor.execute(query, [name, ])
records = cursor.fetchall()
if len(records) < 1:
# print("Console is not in table")
query = "INSERT INTO Consoles (name) VALUES (?)"
cursor.execute(query, [name, ])
sqliteConnection.commit()
query = "SELECT seq FROM sqlite_sequence WHERE name=?"
cursor.execute(query, ["Consoles"])
records = cursor.fetchall()
for row in records:
self.console_id = row[0]
cursor.close()
else:
for row in records:
self.console_id = row[0]
self.populateConsoleAttrs()
except sqlite3.Error as error:
print("Failed to fetch data from database: ", error)
finally:
if (sqliteConnection):
sqliteConnection.close()
print("The SQLite connection is closed")
elif name is None and console_id is not None:
self.console_id = console_id
db = dbConnection()
query = "SELECT * FROM Consoles WHERE console_id=?"
values = [console_id, ]
records = db.queryDB(query, values, returnsRecords=True)
if records.__sizeof__() > 0:
self.populateConsoleAttrs()
db.closeDB()
else:
print("No data given, initializing blank Console object")
def updateConsoleAttrs(self, console_id=None):
if console_id is None:
# print("Console ID is REQUIRED!")
return
else:
try:
sqliteConnection = sqlite3.connect('Romscraper.db')
cursor = sqliteConnection.cursor()
# print("Connected")
query = "SELECT * FROM Consoles WHERE console_id=?"
cursor.execute(query, [console_id, ])
records = cursor.fetchall()
if len(records) > 0:
# print("Console is not in table")
query = "UPDATE Consoles SET name=?, description=?, rating=?, thumbnail_uri=? WHERE console_id=?"
cursor.execute(query,
[self.name, self.description, self.rating, self.thumbnail_uri, self.console_id])
sqliteConnection.commit()
cursor.close()
else:
print("Console with this ID does not exist!")
except sqlite3.Error as error:
print("Failed to fetch data from database: ", error)
def populateConsoleAttrs(self):
db = dbConnection()
query = "SELECT * FROM Consoles WHERE console_id=?"
values = [self.console_id]
records = db.queryDB(query, values, returnsRecords=True)
for row in records:
self.name = row[1]
self.rating = row[4]
self.description = row[2]
return