Example #1
0
    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]
Example #2
0
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"):
Example #4
0
#!/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(
Example #5
0
#!/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(