def __init__(self): section = 'Comms_Serial' s = self._settings s.port = config.load(section, 'port') s.baudrate = int(config.load(section, 'baudrate')) s.bytesize = int(config.load(section, 'bytesize')) s.parity = config.load(section, 'parity') s.stopbits = int(config.load(section, 'stopbits')) s.timeout = int(config.load(section, 'timeout')) s.xonxoff = config.loadBool(section, 'xonxoff') s.rtscts = config.loadBool(section, 'rtscts') s.parity = s.parity[0:1]
sys.path.append( os.path.abspath(os.path.join(os.path.dirname(__file__), os.path.pardir))) from libs import config from libs import db from libs import cache if __name__ == "__main__": parser = argparse.ArgumentParser( description= "Rainwave DB migration script for adding a listener key for each API key." ) parser.add_argument("--config", default=None) args = parser.parse_args() config.load(args.config) db.connect() cache.connect() print "Making changes..." db.c.update("ALTER TABLE r4_api_keys DROP COLUMN api_ip") db.c.update("ALTER TABLE r4_api_keys ADD COLUMN api_key_listen_key TEXT") db.c.update("ALTER TABLE r4_listeners ADD listener_key TEXT") db.c.create_idx("r4_api_keys", "api_key") for key in db.c.fetch_list("SELECT api_key FROM r4_api_keys"): listen_key = ''.join( random.choice(string.ascii_uppercase + string.digits + string.ascii_lowercase) for x in range(10))
import os import sys sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), os.path.pardir))) from libs import config from libs import db from libs import cache from rainwave.playlist_objects.album import Album from rainwave.playlist_objects.album import clear_updated_albums if __name__ == "__main__": parser = argparse.ArgumentParser(description="Rainwave DB migration script for using dates from ID3 tags.") parser.add_argument("--config", default=None) args = parser.parse_args() config.load(args.config) for sid in config.station_ids: clear_updated_albums(sid) db.connect() cache.connect() print "Adding columns to database..." db.c.update("ALTER TABLE r4_albums ADD album_year SMALLINT") db.c.update("ALTER TABLE r4_songs ADD song_track_number SMALLINT") db.c.update("ALTER TABLE r4_songs ADD song_disc_number SMALLINT") db.c.update("ALTER TABLE r4_songs ADD song_year SMALLINT") for album_id in db.c.fetch_list("SELECT album_id FROM r4_albums ORDER BY album_id"):
#!/usr/bin/python import os import sys import os from libs import config from libs import db import rainwave.playlist # Step 1: db_init.py # Step 2: rw_scanner.py --full # Step 3: this script # Step 4: CREATE INDEX ON rw_songratings (song_rating_id); if you haven't already config.load() db.open() class R3Song(rainwave.playlist.Song): def load_r3_data(self): r3_data = db.c.fetch_row( "SELECT MIN(song_addedon) AS song_added_on, SUM(song_totalrequests) AS song_request_count, MAX(song_oa_multiplier) AS song_cool_multiply, MAX(song_oa_override) AS song_cool_override, MAX(song_rating_id) AS song_rating_id FROM rw_songs WHERE song_filename = %s GROUP BY song_filename", (self.filename,), ) if not r3_data: return 0 # db.c.update("UPDATE rw_songs SET r4_song_id = %s WHERE song_filename = %s", (self.id, self.filename)) # db.c.update("UPDATE r4_songs SET song_request_count = %s, song_added_on = %s, song_cool_multiply = %s, song_cool_override = %s WHERE song_id = %s", (r3_data['song_request_count'], r3_data['song_added_on'], r3_data['song_cool_multiply'], r3_data['song_cool_override'], self.id)) updated_ratings = db.c.update(
#!/usr/bin/env python # Updates the "searchable names" fields in the database that are used for full-text searches from libs import config from libs import db from rainwave.playlist_objects.song import make_searchable_string config.load() db.connect() for row in db.c.fetch_all("SELECT song_id, song_title FROM r4_songs"): db.c.update( "UPDATE r4_songs SET song_title_searchable = %s WHERE song_id = %s", (make_searchable_string(row["song_title"]), row["song_id"]), ) for row in db.c.fetch_all("SELECT album_id, album_name FROM r4_albums"): db.c.update( "UPDATE r4_albums SET album_name_searchable = %s WHERE album_id = %s", (make_searchable_string(row["album_name"]), row["album_id"]), ) for row in db.c.fetch_all("SELECT group_id, group_name FROM r4_groups"): db.c.update( "UPDATE r4_groups SET group_name_searchable = %s WHERE group_id = %s", (make_searchable_string(row["group_name"]), row["group_id"]), ) for row in db.c.fetch_all("SELECT artist_id, artist_name FROM r4_artists"): db.c.update(