X-Git-Url: https://harishankar.org/repos/?a=blobdiff_plain;f=biaweb_db.py;h=2c8e6cdf3fae529c6ff91b6272f5c284a82ebde4;hb=3632ca174c91a33db13178bc19ad2f93473b52c0;hp=9be184dd2d900dc103255e3633e0ec43a2450efe;hpb=51a6ece9a63764e7a57230081d299f36d3186918;p=biaweb_qt.git diff --git a/biaweb_db.py b/biaweb_db.py index 9be184d..2c8e6cd 100644 --- a/biaweb_db.py +++ b/biaweb_db.py @@ -2,9 +2,109 @@ # Database handling functions import sqlite3 +import os +import os.path +# function to set the configuration and update the database +def set_configuration (dbname, site_title, site_url, keywords, description, copyright, + num_rss, dest_path): + try: + conn = sqlite3.connect (dbname) + c = conn.cursor () + c.executemany ("UPDATE config SET config_param=? WHERE config_name=?;", + [[site_url, "Website URL"], + [site_title, "Website Title"], + [keywords, "Keywords"], + [description, "Description"], + [num_rss, "No. of RSS items"], + [dest_path, "Destination path"], + [copyright, "Copyright"]]) + conn.commit () + conn.close () + return True + except sqlite3.Error: + return False + +# function to get the existing site configuration and return it as a tuple +def get_configuration (dbname): + try: + conn = sqlite3.connect (dbname) + c = conn.cursor () + c.execute ("SELECT * FROM config;") + conn.commit () + recs = c.fetchall () + conn.close () + for name, param in recs: + if name == "Website URL": + website_url = param + elif name == "Website Title": + website_title = param + elif name == "Keywords": + keywords = param + elif name == "Description": + description = param + elif name == "No. of RSS items": + num_rss = int (param) + elif name == "Destination path": + destination = param + elif name == "Copyright": + copyright = param + return (website_url, website_title, keywords, description, num_rss, destination, copyright) + except sqlite3.Error: + return False + + +# function to create a category +def create_category (dbname, category_name, category_desc, category_stub): + try: + conn = sqlite3.connect (dbname) + c = conn.cursor () + c.execute ("INSERT INTO categories (name, desc, stub) VALUES (?, ?, ?);", + (category_name, category_desc, category_stub)) + conn.commit () + conn.close () + return True + except sqlite3.Error: + return False + +# Function to get list of articles (either full list or just in a category +def get_articles (dbname, category_id=None): + try: + conn = sqlite3.connect (dbname) + c = conn.cursor () + if category_id == None: + c.execute ("SELECT * FROM articles;") + else: + c.execute ("SELECT * FROM articles WHERE cid=?", (category_id,)) + conn.commit () + rows = c.fetchall () + conn.close () + return rows + except sqlite3.Error: + return False + +# Function to get list of categories and return a (category_id, category_name) array +def get_categories (dbname): + try: + conn = sqlite3.connect (dbname) + c = conn.cursor () + c.execute ("SELECT * FROM categories;") + conn.commit () + recs = c.fetchall () + conn.close () + return recs + except sqlite3.Error: + return False + +# function to create a new site database def create_db (dbname, site_title, site_url, keywords, description, copyright, num_rss, dest_path): + try: + if os.path.exists (dbname): + os.remove (dbname) + except OSError: + return False + try: conn = sqlite3.connect (dbname) c = conn.cursor ()