Exemple #1
0
 def post(self):
     s = Song.load_from_id(self.get_argument("song_id"))
     g = SongGroup.load_from_id(self.get_argument("group_id"))
     s.remove_group_id(g.id)
     g.reconcile_sids()
     self.append(
         self.return_name,
         {"success": "true", "tl_key": "Group removed from song ID."},
     )
Exemple #2
0
 def post(self):
     g = SongGroup.load_from_id(self.get_argument("group_id"))
     g.set_cooldown(self.get_argument("cooldown"))
     self.append(
         self.return_name, {
             "tl_key":
             "group_edit_success",
             "text":
             "Group cooldown updated to %s" % self.get_argument("cooldown")
         })
Exemple #3
0
 def post(self):
     g = SongGroup.load_from_id(self.get_argument("group_id"))
     g.set_elec_block(self.get_argument("elec_block"))
     self.append(
         self.return_name, {
             "tl_key":
             "group_edit_success",
             "text":
             "Group elec block updated to %s" %
             self.get_argument("elec_block")
         })
Exemple #4
0
	def get(self):
		group = SongGroup.load_from_id(self.get_argument("id"))
		self.write(self.render_string("bare_header.html", title="Song List"))
		self.write("<h2>%s Songs</h2>" % (group.data['name']))
		self.write("<table>")
		for row in db.c.fetch_all("SELECT r4_songs.song_id AS id, song_title AS title, album_name, group_is_tag FROM r4_song_group JOIN r4_songs USING (song_id) JOIN r4_albums USING (album_id) WHERE group_id = %s ORDER BY group_is_tag, album_name, title", (group.id,)):
			self.write("<tr><td>%s</th><td>%s</td><td>" % (row['id'], row['album_name']))
			self.write("</td><td>%s</td><td>" % row['title'])
			if not row['group_is_tag']:
				self.write("<a class='group_name group_delete' onclick=\"window.top.call_api('admin/remove_group_from_song', { 'song_id': %s, 'group_id': %s });\">%s (X)</a> " % (row['id'], group.id, group.data['name']))
			self.write("</td></tr>")
		self.write(self.render_string("basic_footer.html"))
Exemple #5
0
	def get(self):
		group = SongGroup.load_from_id(self.get_argument("id"))
		self.write(self.render_string("bare_header.html", title="Song List"))
		self.write("<h2>%s Songs</h2>" % (group.data['name']))
		self.write("<table>")
		for row in db.c.fetch_all("SELECT r4_songs.song_id AS id, song_title AS title, album_name, group_is_tag FROM r4_song_group JOIN r4_songs USING (song_id) JOIN r4_albums USING (album_id) WHERE group_id = %s ORDER BY group_is_tag, album_name, title", (group.id,)):
			self.write("<tr><td>%s</th><td>%s</td><td>" % (row['id'], row['album_name']))
			self.write("</td><td>%s</td><td>" % row['title'])
			if not row['group_is_tag']:
				self.write("<a class='group_name group_delete' onclick=\"window.top.call_api('admin/remove_group_from_song', { 'song_id': %s, 'group_id': %s });\">%s (X)</a> " % (row['id'], group.id, group.data['name']))
			self.write("</td></tr>")
		self.write(self.render_string("basic_footer.html"))
Exemple #6
0
	def get(self, group_id):	#pylint: disable=W0221
		group = SongGroup.load_from_id(group_id)
		songs = cache.get_user(self.user, "admin_associate_groups_songs") or []
		cache.set_user(self.user, "admin_associate_groups_songs", [])
		for song_id in songs:
			group.associate_song_id(song_id)
		albums = cache.get_user(self.user, "admin_associate_groups_albums") or []
		cache.set_user(self.user, "admin_associate_groups_albums", [])
		for album_set in albums:
			album = Album.load_from_id_with_songs(album_set[0], album_set[1])
			for song in album.data['songs']:
				group.associate_song_id(song['id'])
		self.write(self.render_string("bare_header.html", title="Added Groups"))
		self.write("<p>Now associated.</p><p><a href='/admin/tools/associate_groups'>Start over.</a></p>")
		self.write(self.render_string("basic_footer.html"))
Exemple #7
0
	def get(self, group_id):
		group = SongGroup.load_from_id(group_id)
		songs = cache.get_user(self.user, "admin_associate_groups_songs") or []
		cache.set_user(self.user, "admin_associate_groups_songs", [])
		for song_id in songs:
			group.associate_song_id(song_id)
		albums = cache.get_user(self.user, "admin_associate_groups_albums") or []
		cache.set_user(self.user, "admin_associate_groups_albums", [])
		for album_set in albums:
			album = Album.load_from_id_with_songs(album_set[0], album_set[1])
			for song in album.data['songs']:
				group.associate_song_id(song['id'])
		self.write(self.render_string("bare_header.html", title="Added Groups"))
		self.write("<p>Now associated.</p><p><a href='/admin/tools/associate_groups'>Start over.</a></p>")
		self.write(self.render_string("basic_footer.html"))
Exemple #8
0
 def post(self):
     SongGroup.load_from_name(self.get_argument("name"))
     self.append(
         self.return_name,
         {"tl_key": "group_create_success", "text": "Group created."},
     )
Exemple #9
0
	def post(self):
		g = SongGroup.load_from_id(self.get_argument("group_id"))
		g.set_cooldown(self.get_argument("cooldown"))
		self.append(self.return_name, { "tl_key": "group_edit_success", "text": "Group cooldown updated to %s" % self.get_argument("cooldown") })
Exemple #10
0
	def post(self):
		g = SongGroup.load_from_id(self.get_argument("group_id"))
		g.set_elec_block(self.get_argument("elec_block"))
		self.append(self.return_name, { "tl_key": "group_edit_success", "text": "Group elec block updated to %s" % self.get_argument("elec_block") })
Exemple #11
0
	def post(self):
		s = Song.load_from_id(self.get_argument("song_id"))
		g = SongGroup.load_from_id(self.get_argument("group_id"))
		s.remove_group_id(g.id)
		g.reconcile_sids()
		self.append(self.return_name, { "success": "true", "tl_key": "Group removed from song ID." })
#!/usr/bin/python

import argparse

from libs import config
from libs import db
from rainwave.playlist import SongGroup

if __name__ == "__main__":
	parser = argparse.ArgumentParser(description="Reconciles song<>group data.")
	parser.add_argument("--config", default=None)
	args = parser.parse_args()
	config.load(args.config)
	db.connect()

	groups = db.c.fetch_list("SELECT group_id FROM r4_groups")
	i = 0
	for group_id in groups:
		txt = "Group %s / %s" % (i, len(groups))
		txt += " " * (80 - len(txt))
		print "\r" + txt,
		i += 1

		g = SongGroup.load_from_id(group_id)
		g.reconcile_sids()
Exemple #13
0
	def post(self):
		SongGroup.load_from_name(self.get_argument("name"))
		self.append(self.return_name, { "tl_key": "group_create_success", "text": "Group created." })
Exemple #14
0
#!/usr/bin/env python

import argparse

from libs import config
from libs import db
from libs import log
from rainwave.playlist import SongGroup

if __name__ == "__main__":
    parser = argparse.ArgumentParser(
        description="Reconciles song<>group data.")
    parser.add_argument("--config", default=None)
    args = parser.parse_args()
    config.load(args.config)
    log.init()
    db.connect()

    groups = db.c.fetch_list("SELECT group_id FROM r4_groups")
    i = 0
    for group_id in groups:
        txt = "Group %s / %s" % (i, len(groups))
        txt += " " * (80 - len(txt))
        print("\r" + txt, end="")
        i += 1

        g = SongGroup.load_from_id(group_id)
        g.reconcile_sids()