2022-07-24 13:09:17 +00:00
# -*- coding: utf-8 -*-
##################################################################################################### SOF
2022-07-25 16:30:54 +00:00
######################################################################################################### SOF
2022-07-24 13:09:17 +00:00
import irc3
from irc3 . plugins . command import command
from urllib . parse import urlparse
2022-07-25 16:30:54 +00:00
from datetime import datetime
2022-07-24 13:09:17 +00:00
from glob import glob
from typing import Type
import random
import string
import os
######################################################################################################### THE ASCII LOGO TO BE USED
MOTD = """
2022-07-27 04:40:04 +00:00
_________ _________ _________ ___ ___ _________ _________ ____ ____
| o ) / O \ / O \ | \ / | | o ) / O \ \ \_ / /
| _____O___ ) \_________ / \_________ / | ____ | ____ | | _____O___ ) \_________ / / ___ / % \___ \\
' BBBBBBB ' ' BBBBBBB ' ' BBBBBBB ' ' BBBBBBB ' ' BBBBBBB ' ' BBBBBBB ' ' BB ' ' BB '
2022-07-24 13:09:17 +00:00
"""
2022-07-25 16:30:54 +00:00
######################################################################################################### BOOMBOX MAIN ENTRY
@irc3.plugin
class Plugin :
##################################################################################################### BOOMBOX MAIN INIT
def __init__ ( self , bot ) :
#################################################################################################
self . bot = bot
self . bot . diagnostic_flag = False
self . bot . bbs = BOOMBOX_CONFIG ( self . bot )
################################################################################################# SOF COLOR INIT
self . bot . bbs . c = [ ]
self . bot . bbs . b1 , self . bot . bbs . b2 , self . bot . bbs . b3 , self . bot . bbs . b4 = self . bot . bbs . palette ( ) [ 0 : 4 ]
self . bot . bbs . b5 , self . bot . bbs . b6 , self . bot . bbs . b7 , self . bot . bbs . b8 = self . bot . bbs . palette ( ) [ 0 : 4 ]
################################################################################################# COLOR INIT
self . bot . bbs . sites = [ ' soundcloud ' , ' youtube ' , ' spotify ' , ' bandcamp ' ]
2022-07-27 04:40:04 +00:00
self . bot . bbs . floor__top_songs = 15
self . bot . bbs . floor__last_songs = 15
self . bot . bbs . floor__top_users = 5
self . bot . bbs . floor__top_sites = len ( self . bot . bbs . sites )
self . bot . bbs . ceiling__top_songs = 50
self . bot . bbs . ceiling__last_songs = 50
self . bot . bbs . ceiling__top_users = 25
2022-07-25 16:30:54 +00:00
self . bot . bbs . ceiling__top_sites = len ( self . bot . bbs . sites )
################################################################################################# EOF COLOR INIT
self . bot . bbs . bot = self . bot
################################################################################################# CHECK OR PREP DB
##################################################################################################### BOOMBOX MAIN 1
@command ( permission = ' view ' , public = True , show_in_help_list = False )
def dbdo ( self , mask , target , args ) :
""" dbdo sync
% % dbdo < noise > . . .
"""
noise = ' ' . join ( args [ ' <noise> ' ] )
commands = noise . split ( )
db = noise . split ( ) [ 0 ]
op = noise . split ( ) [ 1 ]
data = ' ' . join ( noise . split ( ) [ 2 : ] )
result = self . bot . bbs . dbdo ( db , op , data )
##################################################################################################### BOOMBOX MAIN 1
@command ( permission = ' view ' , public = True , show_in_help_list = False )
def bb ( self , mask , target , args ) :
""" Convert boombox token to a url
% % bb < token > . . .
"""
c = self . bot . bbs . palette ( )
self . bot . bbs . c = c
token = ' ' . join ( args [ ' <token> ' ] )
tokens = self . bot . db . getlist ( " bbs_token " )
url = ' '
for t in tokens :
if token in t :
url = t [ token ]
msg = f " { c [ 0 ] } { mask . nick } { c [ 1 ] } ▶ { c [ 2 ] } boombox "
if url :
title_prefetch_data = self . bot . prefetch_title ( url , target , mask )
if url . find ( ' soundcloud ' ) :
try :
if title_prefetch_data :
title = title_prefetch_data . split ( ' | ' ) [ 0 ] . strip ( ) . replace ( ' Stream ' , ' ' ) . strip ( )
msg + = f " { c [ 1 ] } ▶ { c [ 4 ] } { title } { c [ 1 ] } ▶ { c [ 3 ] } { url } { c [ 1 ] } "
else :
msg + = f " { c [ 2 ] } url { c [ 1 ] } ▶ { c [ 3 ] } { url } "
except :
msg + = f " { c [ 2 ] } url { c [ 1 ] } ▶ { c [ 3 ] } { url } "
else :
msg + = f " { c [ 2 ] } error { c [ 1 ] } : { c [ 3 ] } { token } is an invalid token "
2022-07-25 17:17:53 +00:00
self . bot . privmsg ( target , self . bot . emo ( msg ) )
2022-07-25 16:30:54 +00:00
##################################################################################################### BOOMBOX MAIN 2
2022-07-27 04:40:04 +00:00
@command ( permission = ' view ' , error_format = " {cmd} error - usage: ? {cmd} all,top,old,user,site - example: ? {cmd} all " . format )
2022-07-25 16:30:54 +00:00
def boombox ( self , mask , target , args ) :
2022-07-25 17:17:53 +00:00
""" boombox
% % boombox
2022-07-25 16:30:54 +00:00
"""
2022-07-27 04:40:04 +00:00
command = ' all '
2022-07-25 16:30:54 +00:00
###########################################################################
2022-07-27 04:40:04 +00:00
commands = [ ' top ' , ' old ' , ' user ' , ' site ' , ' all ' ]
2022-07-25 16:30:54 +00:00
###########################################################################
if not command in commands :
2022-07-27 04:40:04 +00:00
msg = " boombox - usage: ?boombox top, ?boombox old, ?boombox user, ?boombox site, ?boombox all "
2022-07-25 16:30:54 +00:00
self . bot . privmsg ( target , self . bot . emo ( msg ) )
return
###########################################################################
bbs_last = self . bot . db . getlist ( " bbs_last " )
bbs_data = self . bot . db . getlist ( ' bbs_data ' )
###########################################################################
2022-07-27 04:40:04 +00:00
if bbs_data :
#########################################################################################
c1 , c2 , c3 , c4 , c5 , c6 , c7 , c8 = self . bot . bbs . c
#########################################################################################f
if command == ' all ' :
for _ in MOTD . splitlines ( ) :
if _ :
self . bot . privmsg ( target , f ' { self . bot . bbs . palette ( ) [ 0 ] } { _ } ' )
#########################################################################################
if command == ' top ' or command == ' all ' :
# TOP SONGS TOP SONGS TOP SONGS TOP SONGS TOP SONGS TOP SONGS TOP SONGS TOP SONGS TOP
# TOP SONGS TOP SONGS TOP SONGS TOP SONGS TOP SONGS TOP SONGS TOP SONGS TOP SONGS TOP
# TOP SONGS TOP SONGS TOP SONGS TOP SONGS TOP SONGS TOP SONGS TOP SONGS TOP SONGS TOP
msg = f ' TOP SONGS ◸ { c2 } ◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸ '
######################################################################################################################
self . bot . privmsg ( target , msg )
bbs_data = self . bot . db . getlist ( ' bbs_data ' )
hits = [ ]
for i , data in enumerate ( bbs_data ) :
hits . append ( data [ ' hits ' ] )
lot = [ ( k , v ) for k , v in zip ( range ( len ( hits ) ) , hits ) ]
nl = [ ]
while len ( lot ) > 0 :
nl . append ( max ( lot , key = lambda x : x [ 1 ] ) )
lot . remove ( nl [ - 1 ] )
nl [ 0 : len ( bbs_data ) ]
#####################################################################################
mode_length = 0
if command == ' top ' :
mode_length = self . bot . bbs . ceiling__top_songs
elif command == ' all ' :
mode_length = self . bot . bbs . floor__top_songs
#####################################################################################
for i in range ( mode_length ) :
2022-07-25 16:30:54 +00:00
try :
2022-07-27 04:40:04 +00:00
base = bbs_data [ nl [ i ] [ 0 ] ]
except :
2022-07-25 16:30:54 +00:00
pass
2022-07-27 04:40:04 +00:00
title = base [ ' title ' ] . lower ( )
token = base [ ' token ' ]
url = base [ ' url ' ]
site = base [ ' site ' ]
hits = base [ ' hits ' ]
lot_nicks = [ ( k , v ) for k , v in zip ( range ( len ( base [ ' nicks ' ] . values ( ) ) ) , base [ ' nicks ' ] . values ( ) ) ]
buf_nicks = [ ]
while len ( lot_nicks ) > 0 :
buf_nicks . append ( max ( lot_nicks , key = lambda x : x [ 1 ] ) )
lot_nicks . remove ( buf_nicks [ - 1 ] )
nick_hits = buf_nicks [ 0 ] [ 1 ]
nick = list ( base [ ' nicks ' ] ) [ buf_nicks [ 0 ] [ 0 ] ]
msg = f ' { c4 } { self . bot . bbs . tailor ( title . lower ( ) , 50 ) } { c1 } ╏ { c3 } { self . bot . bbs . tailor ( site . lower ( ) , 10 ) } { c1 } ╏ { c8 } { self . bot . bbs . tailor ( nick . lower ( ) , 10 ) } { c1 } ╏ { c7 } { str ( nick_hits ) . zfill ( 2 ) } { c1 } / { c7 } { str ( hits ) . zfill ( 2 ) } { c6 } plays { c1 } ╏ { c5 } ?bb { token } '
2022-07-25 16:30:54 +00:00
self . bot . privmsg ( target , msg )
2022-07-27 04:40:04 +00:00
#########################################################################################
if command == ' old ' or command == ' all ' :
# OLD SONGS OLD SONGS OLD SONGS OLD SONGS OLD SONGS OLD SONGS OLD SONGS OLD SONGS OLD
# OLD SONGS OLD SONGS OLD SONGS OLD SONGS OLD SONGS OLD SONGS OLD SONGS OLD SONGS OLD
# OLD SONGS OLD SONGS OLD SONGS OLD SONGS OLD SONGS OLD SONGS OLD SONGS OLD SONGS OLD
msg = f ' OLD SONGS ◸ { c2 } ◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸ '
self . bot . privmsg ( target , msg )
bbs_data = self . bot . db . getlist ( ' bbs_data ' )
last_songs = [ ]
try :
for i , lastdb in enumerate ( bbs_last ) :
nick = lastdb [ 0 ]
site = lastdb [ 1 ]
title = lastdb [ 2 ]
token = lastdb [ 3 ]
url = lastdb [ 4 ]
try :
reverse_index = self . bot . bbs . dbgaze ( ' bbs_data ' , ' token ' , token )
hits = bbs_data [ reverse_index ] [ ' hits ' ]
db_key_nicks = list ( zip ( list ( bbs_data [ reverse_index ] [ ' nicks ' ] . values ( ) ) , list ( bbs_data [ reverse_index ] [ ' nicks ' ] . keys ( ) ) ) )
db_key_nicks . sort ( )
user = db_key_nicks [ - 1 ] [ 1 ]
plays = user = db_key_nicks [ - 1 ] [ 0 ]
if len ( lastdb ) > 0 :
msg = f ' { c4 } { self . bot . bbs . tailor ( title . lower ( ) , 50 ) } { c1 } ╏ { c3 } { self . bot . bbs . tailor ( site . lower ( ) , 10 ) } { c1 } ╏ { c8 } { self . bot . bbs . tailor ( nick . lower ( ) , 10 ) } { c1 } ╏ { c7 } { str ( plays ) . zfill ( 2 ) } { c1 } / { c7 } { str ( hits ) . zfill ( 2 ) } { c6 } plays { c1 } ╏ { c5 } ?bb { token } '
last_songs . append ( msg )
except Exception as e :
print ( f ' { mask . nick } : boombox_plugin:boombox:last - error: { e } ' )
except Exception as e :
pass
#####################################################################################
mode_length = 0
if command == ' old ' :
mode_length = self . bot . bbs . ceiling__last_songs
elif command == ' all ' :
mode_length = self . bot . bbs . floor__last_songs
#####################################################################################
try :
for i in range ( mode_length ) :
self . bot . privmsg ( target , last_songs [ i ] )
except :
pass
#########################################################################################
if command == ' user ' or command == ' all ' :
# TOP USERS TOP USERS TOP USERS TOP USERS TOP USERS TOP USERS TOP USERS TOP USERS TOP
# TOP USERS TOP USERS TOP USERS TOP USERS TOP USERS TOP USERS TOP USERS TOP USERS TOP
# TOP USERS TOP USERS TOP USERS TOP USERS TOP USERS TOP USERS TOP USERS TOP USERS TOP
msg = f ' TOP USERS ◸ { c2 } ◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸ '
self . bot . privmsg ( target , msg )
top_data = self . bot . db . getlist ( ' bbs_data ' )
bbs_nicks = self . bot . db . getlist ( " bbs_nicks " )
top_nicks = list ( bbs_nicks [ 0 ] . keys ( ) )
top_users_tally = [ ] ; top_users = [ ]
for _ in [ x for x in bbs_nicks [ 0 ] ] :
top_users_tally . append ( bbs_nicks [ 0 ] [ _ ] [ ' tally ' ] )
for _ in [ x for x in bbs_nicks [ 0 ] ] :
top_users . append ( _ )
userlist = list ( zip ( top_users_tally , top_users ) )
userlist . sort ( )
userlist . reverse ( )
for i , userdata in enumerate ( userlist ) :
tally , user = userdata
top_users = [ ]
for _user in userlist :
top_user = _user [ 1 ]
user_hits = [ ]
2022-07-25 16:30:54 +00:00
for i , _ in enumerate ( bbs_data ) :
2022-07-27 04:40:04 +00:00
try :
user_hits . append ( f " { _ [ ' nicks ' ] [ _user [ 1 ] ] } , { i } " )
except :
pass
user_hits . sort ( )
user_hits . reverse ( )
top_hits = int ( user_hits [ 0 ] . split ( ' , ' ) [ 0 ] )
top_index = int ( user_hits [ 0 ] . split ( ' , ' ) [ 1 ] )
top_hits_site = int ( bbs_data [ top_index ] [ ' hits ' ] )
top_site = bbs_data [ top_index ] [ ' site ' ]
top_title = bbs_data [ top_index ] [ ' title ' ]
top_token = bbs_data [ top_index ] [ ' token ' ]
msg = f ' { c4 } { self . bot . bbs . tailor ( top_title . lower ( ) , 50 ) } { c1 } ╏ { c3 } { self . bot . bbs . tailor ( top_site . lower ( ) , 10 ) } { c1 } ╏ { c8 } { self . bot . bbs . tailor ( top_user . lower ( ) , 10 ) } { c1 } ╏ { c7 } { str ( top_hits ) . zfill ( 2 ) } { c1 } / { c7 } { str ( top_hits_site ) . zfill ( 2 ) } { c6 } plays { c1 } ╏ { c5 } ?bb { top_token } '
top_users . append ( msg )
#####################################################################################
mode_length = 0
if command == ' user ' :
mode_length = self . bot . bbs . ceiling__top_users
elif command == ' all ' :
mode_length = self . bot . bbs . floor__top_users
#####################################################################################
try :
for i in range ( mode_length ) :
self . bot . privmsg ( target , top_users [ i ] )
except :
pass
#########################################################################################
if command == ' site ' or command == ' all ' :
# TOP SITES TOP SITES TOP SITES TOP SITES TOP SITES TOP SITES TOP SITES TOP SITES TOP
# TOP SITES TOP SITES TOP SITES TOP SITES TOP SITES TOP SITES TOP SITES TOP SITES TOP
# TOP SITES TOP SITES TOP SITES TOP SITES TOP SITES TOP SITES TOP SITES TOP SITES TOP
bbs_sites = self . bot . db . getlist ( " bbs_sites " )
msg = f ' TOP SITES ◸ { c2 } ◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸◹◸ '
self . bot . privmsg ( target , msg )
bbs_nicks = self . bot . db . getlist ( ' bbs_nicks ' )
site_nicks = list ( bbs_nicks [ 0 ] . keys ( ) )
site_users_bandcamp = [ ] ; site_users_soundcloud = [ ] ;
site_users_youtube = [ ] ; site_users_spotify = [ ] ;
for _ in [ x for x in site_nicks ] :
site_users_bandcamp . append ( [ bbs_nicks [ 0 ] [ _ ] [ ' bandcamp ' ] , _ ] )
site_users_soundcloud . append ( [ bbs_nicks [ 0 ] [ _ ] [ ' soundcloud ' ] , _ ] )
site_users_youtube . append ( [ bbs_nicks [ 0 ] [ _ ] [ ' youtube ' ] , _ ] )
site_users_spotify . append ( [ bbs_nicks [ 0 ] [ _ ] [ ' spotify ' ] , _ ] )
site_users_bandcamp . sort ( ) ; site_users_bandcamp . reverse ( )
site_users_soundcloud . sort ( ) ; site_users_soundcloud . reverse ( )
site_users_youtube . sort ( ) ; site_users_youtube . reverse ( )
site_users_spotify . sort ( ) ; site_users_spotify . reverse ( )
######################################################################################################################################################################
bandcamp_top_user_hits = [ ]
for i , _ in enumerate ( bbs_data ) :
if _ [ ' site ' ] == ' bandcamp ' :
bandcamp_top_user_hits . append ( f ' { _ [ " hits " ] } , { i } ' )
bandcamp_top_user_hits . sort ( )
bandcamp_top_user_hits . reverse ( )
bandcamp_index = int ( bandcamp_top_user_hits [ 0 ] . split ( ' , ' ) [ 1 ] )
bandcamp_title = bbs_data [ bandcamp_index ] [ ' title ' ]
bandcamp_site = bbs_data [ bandcamp_index ] [ ' site ' ]
bandcamp_user = site_users_bandcamp [ 0 ] [ 1 ]
bandcamp_userhits = bandcamp_top_user_hits [ 0 ] . split ( ' , ' ) [ 0 ]
bbs_sites = self . bot . db . getlist ( ' bbs_sites ' )
bandcamp_sitehits = bbs_sites [ 0 ] [ ' bandcamp ' ]
bandcamp_token = bbs_data [ bandcamp_index ] [ ' token ' ]
site_bandcamp = [ bandcamp_title , bandcamp_site , bandcamp_user , bandcamp_userhits , bandcamp_sitehits , bandcamp_token , bandcamp_index ]
######################################################################################################################################################################
soundcloud_top_user_hits = [ ]
for i , _ in enumerate ( bbs_data ) :
if _ [ ' site ' ] == ' soundcloud ' :
soundcloud_top_user_hits . append ( f ' { _ [ " hits " ] } , { i } ' )
soundcloud_top_user_hits . sort ( )
soundcloud_top_user_hits . reverse ( )
soundcloud_index = int ( soundcloud_top_user_hits [ 0 ] . split ( ' , ' ) [ 1 ] )
soundcloud_title = bbs_data [ soundcloud_index ] [ ' title ' ]
soundcloud_site = bbs_data [ soundcloud_index ] [ ' site ' ]
soundcloud_user = site_users_soundcloud [ 0 ] [ 1 ]
soundcloud_userhits = soundcloud_top_user_hits [ 0 ] . split ( ' , ' ) [ 0 ]
bbs_sites = self . bot . db . getlist ( ' bbs_sites ' )
soundcloud_sitehits = bbs_sites [ 0 ] [ ' soundcloud ' ]
soundcloud_token = bbs_data [ soundcloud_index ] [ ' token ' ]
site_soundcloud = [ soundcloud_title , soundcloud_site , soundcloud_user , soundcloud_userhits , soundcloud_sitehits , soundcloud_token , soundcloud_index ]
######################################################################################################################################################################
youtube_top_user_hits = [ ]
for i , _ in enumerate ( bbs_data ) :
if _ [ ' site ' ] == ' youtube ' :
youtube_top_user_hits . append ( f ' { _ [ " hits " ] } , { i } ' )
youtube_top_user_hits . sort ( )
youtube_top_user_hits . reverse ( )
youtube_index = int ( youtube_top_user_hits [ 0 ] . split ( ' , ' ) [ 1 ] )
youtube_title = bbs_data [ youtube_index ] [ ' title ' ]
youtube_site = bbs_data [ youtube_index ] [ ' site ' ]
youtube_user = site_users_youtube [ 0 ] [ 1 ]
youtube_userhits = youtube_top_user_hits [ 0 ] . split ( ' , ' ) [ 0 ]
bbs_sites = self . bot . db . getlist ( ' bbs_sites ' )
youtube_sitehits = bbs_sites [ 0 ] [ ' youtube ' ]
youtube_token = bbs_data [ youtube_index ] [ ' token ' ]
site_youtube = [ youtube_title , youtube_site , youtube_user , youtube_userhits , youtube_sitehits , youtube_token , youtube_index ]
######################################################################################################################################################################
spotify_top_user_hits = [ ]
for i , _ in enumerate ( bbs_data ) :
if _ [ ' site ' ] == ' spotify ' :
spotify_top_user_hits . append ( f ' { _ [ " hits " ] } , { i } ' )
spotify_top_user_hits . sort ( )
spotify_top_user_hits . reverse ( )
spotify_index = int ( spotify_top_user_hits [ 0 ] . split ( ' , ' ) [ 1 ] )
spotify_title = bbs_data [ spotify_index ] [ ' title ' ]
spotify_site = bbs_data [ spotify_index ] [ ' site ' ]
spotify_user = site_users_spotify [ 0 ] [ 1 ]
spotify_userhits = spotify_top_user_hits [ 0 ] . split ( ' , ' ) [ 0 ]
bbs_sites = self . bot . db . getlist ( ' bbs_sites ' )
spotify_sitehits = bbs_sites [ 0 ] [ ' spotify ' ]
spotify_token = bbs_data [ spotify_index ] [ ' token ' ]
site_spotify = [ spotify_title , spotify_site , spotify_user , spotify_userhits , spotify_sitehits , spotify_token , spotify_index ]
######################################################################################################################################################################
bbs_sites = self . bot . db . getlist ( " bbs_sites " )
hits = [ ]
for i , data in enumerate ( bbs_sites [ 0 ] . keys ( ) ) :
hits . append ( bbs_sites [ 0 ] [ data ] )
lot = [ ( k , v ) for k , v in zip ( range ( len ( hits ) ) , hits ) ]
nl = [ ]
while len ( lot ) > 0 :
nl . append ( max ( lot , key = lambda x : x [ 1 ] ) )
lot . remove ( nl [ - 1 ] )
siteorder = [ ]
for i in range ( len ( nl ) ) : siteorder . append ( list ( bbs_sites [ 0 ] . keys ( ) ) [ nl [ i ] [ 0 ] ] )
top_sites = [ ]
for site in siteorder :
if site == ' soundcloud ' :
msg = f ' { c4 } { self . bot . bbs . tailor ( site_soundcloud [ 0 ] . lower ( ) , 50 ) } { c1 } ╏ { c3 } { self . bot . bbs . tailor ( site_soundcloud [ 1 ] . lower ( ) , 10 ) } { c1 } ╏ { c8 } { self . bot . bbs . tailor ( site_soundcloud [ 2 ] . lower ( ) , 10 ) } { c1 } ╏ { c7 } { str ( site_soundcloud [ 3 ] ) . zfill ( 2 ) } { c1 } / { c7 } { str ( site_soundcloud [ 4 ] ) . zfill ( 2 ) } { c6 } plays { c1 } ╏ { c5 } ?bb { site_soundcloud [ 5 ] } '
top_sites . append ( msg )
elif site == ' bandcamp ' :
msg = f ' { c4 } { self . bot . bbs . tailor ( site_bandcamp [ 0 ] . lower ( ) , 50 ) } { c1 } ╏ { c3 } { self . bot . bbs . tailor ( site_bandcamp [ 1 ] . lower ( ) , 10 ) } { c1 } ╏ { c8 } { self . bot . bbs . tailor ( site_bandcamp [ 2 ] . lower ( ) , 10 ) } { c1 } ╏ { c7 } { str ( site_bandcamp [ 3 ] ) . zfill ( 2 ) } { c1 } / { c7 } { str ( site_bandcamp [ 4 ] ) . zfill ( 2 ) } { c6 } plays { c1 } ╏ { c5 } ?bb { site_bandcamp [ 5 ] } '
top_sites . append ( msg )
elif site == ' youtube ' :
msg = f ' { c4 } { self . bot . bbs . tailor ( site_youtube [ 0 ] . lower ( ) , 50 ) } { c1 } ╏ { c3 } { self . bot . bbs . tailor ( site_youtube [ 1 ] . lower ( ) , 10 ) } { c1 } ╏ { c8 } { self . bot . bbs . tailor ( site_youtube [ 2 ] . lower ( ) , 10 ) } { c1 } ╏ { c7 } { str ( site_youtube [ 3 ] ) . zfill ( 2 ) } { c1 } / { c7 } { str ( site_youtube [ 4 ] ) . zfill ( 2 ) } { c6 } plays { c1 } ╏ { c5 } ?bb { site_youtube [ 5 ] } '
top_sites . append ( msg )
elif site == ' spotify ' :
msg = f ' { c4 } { self . bot . bbs . tailor ( site_spotify [ 0 ] . lower ( ) , 50 ) } { c1 } ╏ { c3 } { self . bot . bbs . tailor ( site_spotify [ 1 ] . lower ( ) , 10 ) } { c1 } ╏ { c8 } { self . bot . bbs . tailor ( site_spotify [ 2 ] . lower ( ) , 10 ) } { c1 } ╏ { c7 } { str ( site_spotify [ 3 ] ) . zfill ( 2 ) } { c1 } / { c7 } { str ( site_spotify [ 4 ] ) . zfill ( 2 ) } { c6 } plays { c1 } ╏ { c5 } ?bb { site_spotify [ 5 ] } '
top_sites . append ( msg )
#####################################################################################
mode_length = 0
if command == ' site ' :
mode_length = self . bot . bbs . ceiling__top_sites
elif command == ' all ' :
mode_length = self . bot . bbs . floor__top_sites
#####################################################################################
try :
for i in range ( mode_length ) :
self . bot . privmsg ( target , top_sites [ i ] )
except :
pass
2022-07-25 16:30:54 +00:00
##################################################################################################################################################################################
######################################################################################################### BOOMBOX CONFIG ENTRY
class BOOMBOX_CONFIG :
##################################################################################################### BOOMBOX CONFIG INIT
2022-07-24 13:09:17 +00:00
def __init__ ( self , bot ) :
2022-07-25 16:30:54 +00:00
self . bot = bot
self . db = [ ]
self . bot . bbdb = [ ]
self . database_names = [ ' bbs_data ' , ' bbs_last ' , ' bbs_nicks ' , ' bbs_sites ' , ' bbs_token ' , ' bbs_tokenmirror ' ]
print ( f ' \n [ database diagnostics ] \n ' )
for index , database in enumerate ( self . database_names ) :
db = self . bot . db . getlist ( database )
if not db :
print ( f ' \t - missing database { " " * 19 } { index + 1 } / { len ( self . database_names ) } - { self . database_names [ index ] } ' )
self . db_diagnostics ( database )
else :
print ( f ' \t + located database: { index + 1 } / { len ( self . database_names ) } - { self . database_names [ index ] } ' )
print ( f ' { " # " * 80 } SOF ' )
print ( f ' pre - a database name: { database } ' )
print ( f ' pre - database memory: \n { self . db } ' )
print ( f ' pre - a datbase entry: \n { db } ' )
print ( f ' post - database merged: \n { db } ' )
print ( f ' { " # " * 80 } EOF ' )
print ( f ' \n { " - " * 80 } ' )
for _ in self . database_names :
self . bot . bbdb . append ( self . bot . db . getlist ( _ ) )
##################################################################################################### BOOMBOX CONFIG COLOR CODES
2022-07-24 13:09:17 +00:00
def color ( self , c ) :
try :
c = str ( c . lower ( ) )
if c == ' 0 ' : return ' \x03 00 '
if c == ' 1 ' : return ' \x03 01 '
if c == ' 2 ' : return ' \x03 02 '
if c == ' 3 ' : return ' \x03 03 '
if c == ' 4 ' : return ' \x03 04 '
if c == ' 5 ' : return ' \x03 05 '
if c == ' 6 ' : return ' \x03 06 '
if c == ' 7 ' : return ' \x03 07 '
if c == ' 8 ' : return ' \x03 08 '
if c == ' 9 ' : return ' \x03 09 '
if c == ' a ' : return ' \x03 10 '
if c == ' b ' : return ' \x03 11 '
if c == ' c ' : return ' \x03 12 '
if c == ' d ' : return ' \x03 13 '
if c == ' e ' : return ' \x03 14 '
if c == ' f ' : return ' \x03 15 '
if c == ' n ' : return ' '
if c == ' t ' : return ' \x0f '
print ( ' color: empty ' )
return ' \x0f '
except :
print ( ' color: error ' )
return ' \x0f '
2022-07-25 16:30:54 +00:00
##################################################################################################### BOOMBOX CONFIG COLOR SETS
2022-07-24 13:09:17 +00:00
def palette ( self ) :
self . c = [ ] ; self . n = [ ]
for i in range ( 0 , 8 ) :
n = random . randint ( 0 , 15 )
c = self . color ( hex ( n ) [ 2 : ] )
self . c . append ( c ) ; self . n . append ( n )
return self . c
2022-07-25 16:30:54 +00:00
##################################################################################################### BOOMBOX CONFIG TEXT ALIGNMENTS
2022-07-24 13:09:17 +00:00
def tailor ( self , s , n ) :
if len ( s ) < = n :
2022-07-25 17:17:53 +00:00
result = s + " . " * ( n - len ( s ) )
2022-07-24 13:09:17 +00:00
return result
else :
return s [ 0 : n ]
2022-07-25 16:30:54 +00:00
##################################################################################################### BOOMBOX CONFIG TEXT ALIGNMENTS
def dbsync ( self , db ) :
for i , database in enumerate ( [ ' bbs_data ' , ' bbs_last ' , ' bbs_nicks ' , ' bbs_sites ' , ' bbs_token ' , ' bbs_tokenmirror ' ] ) :
if db == database :
print ( ' breakpoint: boombox_plugin:dbsync ' )
try :
db_stored = self . bot . db . getlist ( database )
db_memory = self . bot . bbdb [ i ]
if not db_memory == db_stored :
self . bot . db . setlist ( database , db_memory )
print ( ' success: storage database updated from memory ' )
else :
print ( ' aborted: storage database same as memory content ' )
except Exception as e :
print ( ' error: boombox_plugin:dbsync - failed in writing to storage database from memory: {e} ' )
##################################################################################################### BOOMBOX CONFIG TEXT ALIGNMENTS
def dbdo ( self , database , operation , data = " " ) :
database_names = ( [ ' bbs_data ' , ' bbs_last ' , ' bbs_nicks ' , ' bbs_sites ' , ' bbs_token ' , ' bbs_tokenmirror ' ] )
operations = [ ' get ' , ' set ' , ' update ' , ' append ' ]
if database in database_names :
index = database_names . index ( database )
if operation in operations :
if operation == " get " :
return self . bot . bbdb [ index ]
elif operation == ' set ' :
db_stored = self . bot . db . getlist ( database )
print ( f ' pre: { database } db_stored: { db_stored } ' )
print ( f ' pre: { database } db_memory: { self . bot . bbdb [ index ] } ' )
print ( f ' pre: { database } db_sent: { data } ' )
self . bot . bbdb [ index ] = data
print ( f ' post: { database } db_memory: { self . bot . bbdb [ index ] } ' )
print ( f ' writing from memory to storage ' )
self . dbsync ( database )
elif operation == ' append ' :
db_stored = self . bot . db . getlist ( database )
print ( f ' pre: { database } db_stored: { db_stored } ' )
print ( f ' pre: { database } db_memory: { self . bot . bbdb [ index ] } ' )
self . bot . bbdb [ index ] . append ( data )
print ( f ' post: { database } db_memory: { self . bot . bbdb [ index ] } ' )
print ( f ' writing from memory to storage ' )
self . dbsync ( database )
##################################################################################################### BOOMBOX CONFIG DATABASE OPERATIONS
def push ( self , nick , site , title , token , url ) :
2022-07-24 13:09:17 +00:00
nick = self . no_unicode ( nick )
title = self . no_unicode ( title )
2022-07-25 16:30:54 +00:00
bbs_data = self . dbdo ( ' bbs_data ' , ' get ' )
bbs_last = self . dbdo ( ' bbs_last ' , ' get ' )
2022-07-24 13:09:17 +00:00
bbs_last = bbs_last [ - 1 : ] + bbs_last [ : - 1 ]
2022-07-25 16:30:54 +00:00
bbs_last [ 0 ] = [ nick , site , title , token , url ]
self . dbdo ( ' bbs_last ' , ' set ' , bbs_last )
##################################################################################################### BOOMBOX CONFIG DATABASE OPERATIONS
2022-07-24 13:09:17 +00:00
def check ( self , nick , site , data ) :
#################################################################################################
2022-07-25 16:30:54 +00:00
bbs_nicks = self . dbdo ( ' bbs_nicks ' , ' get ' )
bbs_sites = self . dbdo ( ' bbs_sites ' , ' get ' )
bbs_data = self . dbdo ( ' bbs_data ' , ' get ' )
bbs_token = self . dbdo ( ' bbs_token ' , ' get ' )
bbs_tokenmirror = self . dbdo ( ' bbs_tokenmirror ' , ' get ' )
2022-07-24 13:09:17 +00:00
#################################################################################################
try :
if bbs_data :
for i , _data in enumerate ( bbs_data ) :
if data [ ' url ' ] == _data [ ' url ' ] :
_data [ ' hits ' ] + = 1
try :
_data [ ' nicks ' ] [ nick ] + = 1
except :
_data [ ' nicks ' ] . update ( { nick : 1 } )
try :
2022-07-25 16:30:54 +00:00
bbs_nicks [ 0 ] [ nick ] [ ' tally ' ] + = 1
bbs_nicks [ 0 ] [ nick ] [ site ] + = 1
2022-07-24 13:09:17 +00:00
except :
2022-07-25 16:30:54 +00:00
bbs_nicks [ 0 ] . update ( { nick : { ' tally ' : 1 , ' bandcamp ' : 0 , ' soundcloud ' : 0 , ' spotify ' : 0 , ' youtube ' : 0 } } )
bbs_nicks [ 0 ] [ nick ] [ site ] + = 1
2022-07-24 13:09:17 +00:00
bbs_sites [ 0 ] [ site ] + = 1
bbs_data [ i ] = _data
2022-07-25 16:30:54 +00:00
self . dbdo ( " bbs_nicks " , ' set ' , bbs_nicks )
self . dbdo ( " bbs_sites " , ' set ' , bbs_sites )
self . dbdo ( " bbs_data " , ' set ' , bbs_data )
2022-07-24 13:09:17 +00:00
return
#########################################################################################
try :
2022-07-25 16:30:54 +00:00
bbs_nicks [ 0 ] [ nick ] [ ' tally ' ] + = 1
bbs_nicks [ 0 ] [ nick ] [ site ] + = 1
2022-07-24 13:09:17 +00:00
except :
2022-07-25 16:30:54 +00:00
bbs_nicks [ 0 ] . update ( { nick : { ' tally ' : 1 , ' bandcamp ' : 0 , ' soundcloud ' : 0 , ' spotify ' : 0 , ' youtube ' : 0 } } )
bbs_nicks [ 0 ] [ nick ] [ site ] + = 1
2022-07-24 13:09:17 +00:00
#########################################################################################
2022-07-25 16:30:54 +00:00
self . dbdo ( " bbs_nicks " , ' set ' , bbs_nicks )
2022-07-24 13:09:17 +00:00
bbs_sites [ 0 ] [ site ] + = 1
2022-07-25 16:30:54 +00:00
self . dbdo ( " bbs_sites " , ' set ' , bbs_sites )
2022-07-24 13:09:17 +00:00
bbs_data . append ( data )
2022-07-25 16:30:54 +00:00
self . dbdo ( " bbs_data " , ' set ' , bbs_data )
2022-07-24 13:09:17 +00:00
URL = data [ ' url ' ] ; TOKEN = data [ ' token ' ]
2022-07-25 16:30:54 +00:00
self . dbdo ( ' bbs_token ' , ' append ' , { TOKEN : URL } )
self . dbdo ( " bbs_token " , ' set ' , bbs_token )
self . dbdo ( ' bbs_tokenmirror ' , ' append ' , { TOKEN : URL } )
self . dbdo ( ' bbs_tokenmirror ' , ' set ' , bbs_tokenmirror )
2022-07-24 13:09:17 +00:00
except :
2022-07-25 16:30:54 +00:00
bbs_nicks = [ ]
self . dbdo ( ' bbs_nicks ' , ' append ' , { nick : { ' tally ' : 1 , ' bandcamp ' : 0 , ' soundcloud ' : 0 , ' spotify ' : 0 , ' youtube ' : 0 } } )
bbs_nicks [ 0 ] [ nick ] [ site ] + = 1 ############################# notice
self . dbdo ( ' bbs_nicks ' , ' set ' , bbs_nicks )
self . dbdo ( ' bbs_sites ' , ' set ' , [ { ' soundcloud ' : 0 , ' youtube ' : 0 , ' spotify ' : 0 , ' bandcamp ' : 0 } ] )
bbs_sites = self . dbdo ( ' bbs_sites ' , ' get ' )
bbs_sites [ 0 ] [ site ] + = 1 ################################### notice
self . dbdo ( ' bbs_sites ' , ' set ' , bbs_sites )
self . dbdo ( ' bbs_data ' , ' set ' , [ data ] )
2022-07-24 13:09:17 +00:00
URL = data [ ' url ' ] ; TOKEN = data [ ' token ' ]
2022-07-25 16:30:54 +00:00
self . dbdo ( ' bbs_token ' , { TOKEN : URL } )
self . dbdo ( ' bbs_token ' , ' set ' , bbs_token )
self . dbdo ( ' bbs_token ' , { TOKEN : URL } )
self . dbdo ( ' bbs_tokenmirror ' , ' append ' , { URL : TOKEN } )
self . dbdo ( ' bbs_tokenmirror ' , ' set ' , bbs_tokenmirror )
##################################################################################################### BOOMBOX CONFIG HOOKED EXTERNALS DATABASE OPERATIONS
def getsite ( self , url ) :
#################################################################################################
sites = [ ' soundcloud ' , ' youtube ' , ' spotify ' , ' bandcamp ' ]
if not url . find ( ' soundcloud.com ' ) == - 1 :
return sites [ 0 ]
if not url . find ( ' youtube.com ' ) == - 1 or not url . find ( ' youtu.be ' ) == - 1 :
return sites [ 1 ]
if not url . find ( ' spotify.com ' ) == - 1 :
return sites [ 2 ]
if not url . find ( ' bandcamp.com ' ) == - 1 :
return sites [ 3 ]
##################################################################################################### BOOMBOX CONFIG HOOKED EXTERNALS DATABASE OPERATIONS
2022-07-24 13:09:17 +00:00
def enter ( self , nick , url , title ) :
#################################################################################################
2022-07-25 16:30:54 +00:00
timestamp = datetime . now ( ) . timestamp ( )
2022-07-24 13:09:17 +00:00
token = self . token ( url )
2022-07-25 16:30:54 +00:00
bbs_token = self . dbdo ( ' bbs_token ' , ' get ' )
2022-07-24 13:09:17 +00:00
nick = self . no_unicode ( nick )
2022-07-25 16:30:54 +00:00
title = self . no_unicode ( title ) . lower ( )
site = self . getsite ( url )
2022-07-24 13:09:17 +00:00
#################################################################################################
2022-07-25 16:30:54 +00:00
data = { ' nicks ' : { nick : 1 } , ' title ' : title . lower ( ) , ' url ' : url , ' token ' : token , ' timestamp ' : timestamp , ' site ' : site , ' hits ' : 1 }
2022-07-24 13:09:17 +00:00
#################################################################################################
2022-07-25 16:30:54 +00:00
if site == ' soundcloud ' :
title = title [ : title . rfind ( ' by ' ) ] . replace ( ' Stream ' , ' ' ) . strip ( ) . lower ( )
2022-07-24 13:09:17 +00:00
if not title == ' SoundCloud - Hear the world’ s sound ' :
2022-07-25 16:30:54 +00:00
data [ ' title ' ] = title . split ( ' music | ' ) [ 0 ] . rstrip ( ) . lower ( )
2022-07-24 13:09:17 +00:00
data = self . check ( nick , site , data )
2022-07-25 16:30:54 +00:00
self . push ( nick . lower ( ) , site , title . lower ( ) , token , url )
2022-07-24 13:09:17 +00:00
#################################################################################################
2022-07-25 16:30:54 +00:00
if site == ' youtube ' :
2022-07-24 13:09:17 +00:00
id = url [ - 11 : ]
result = self . bot . videos_list_by_id ( id = id )
if result :
data = self . check ( nick , site , data )
2022-07-25 16:30:54 +00:00
self . push ( nick . lower ( ) , site , title . lower ( ) , token , url )
2022-07-24 13:09:17 +00:00
#################################################################################################
2022-07-25 16:30:54 +00:00
if site == ' spotify ' :
2022-07-24 13:09:17 +00:00
offset = url . rfind ( ' / ' ) + 1
try :
track = title . split ( ' | ' ) [ 0 ] . split ( ' - song by ' ) [ 0 ] . strip ( )
artist = title . split ( ' | ' ) [ 0 ] . split ( ' - song by ' ) [ 1 ] . strip ( )
except :
track = title . split ( ' | ' ) [ 0 ] . split ( ' - Album by ' ) [ 0 ] . strip ( )
artist = title . split ( ' | ' ) [ 0 ] . split ( ' - Album by ' ) [ 1 ] . strip ( )
2022-07-25 16:30:54 +00:00
title = f ' { artist } - { track } ' . lower ( )
2022-07-24 13:09:17 +00:00
data [ ' title ' ] = title
data = self . check ( nick , site , data )
2022-07-25 16:30:54 +00:00
self . push ( nick . lower ( ) , site , title . lower ( ) , token , url )
2022-07-24 13:09:17 +00:00
#################################################################################################
2022-07-25 16:30:54 +00:00
if site == ' bandcamp ' :
2022-07-24 13:09:17 +00:00
offset = url . rfind ( ' / ' ) + 1
try :
track = title . split ( ' | ' ) [ 0 ] . lower ( ) . strip ( )
except :
pass
2022-07-25 16:30:54 +00:00
try :
artist = title . split ( ' | ' ) [ 1 ] . lower ( ) . strip ( )
title = f ' { artist } - { track } ' . lower ( )
except :
artist = " "
title = f ' { artist } { track } ' . lower ( )
data [ ' title ' ] = title . lower ( )
2022-07-24 13:09:17 +00:00
data = self . check ( nick , site , data )
2022-07-25 16:30:54 +00:00
self . push ( nick . lower ( ) , site , title . lower ( ) , token , url )
##################################################################################################### BOOMBOX CONFIG DATABASE OPERATIONS FOR URLS
def token ( self , url ) :
bbs_token = self . dbdo ( ' bbs_token ' , ' get ' )
bbs_tokenmirror = self . dbdo ( ' bbs_tokenmirror ' , ' get ' )
S = list ( string . ascii_letters + string . digits )
random . shuffle ( S )
S = ' ' . join ( S ) [ : 5 ]
while S in [ list ( x . keys ( ) ) [ 0 ] for x in bbs_token ] :
S = list ( string . ascii_letters + string . digits )
random . shuffle ( S ) ; S = ' ' . join ( S ) [ : 5 ]
return f ' { S } '
##################################################################################################### BOOMBOX CONFIG TEXT FILTERING BY STRIPPING UNICODE
def no_unicode ( self , s ) :
if len ( s ) < 1 : return s
s = s . encode ( ' ascii ' , ' ignore ' ) . decode ( )
s = s . strip ( ) . replace ( ' ' , ' ' )
return s
##################################################################################################### BOOMBOX CONFIG DATABASE OPERATIONS - SUB-SCANNING RECORDS RETURNING CONDITIONAL BOOLEAN
def dbskim ( self , db , s ) :
buffer = self . dbdo ( db , ' get ' )
for _ in buffer :
try :
result = _ [ s ]
if result :
return result
except :
pass
##################################################################################################### BOOMBOX CONFIG DATABASE OPERATIONS - SUB-SCANNING RECORDS RETURNING CONDITIONAL BOOLEAN
def dbgaze ( self , db , key , s ) :
buffer = self . dbdo ( db , ' get ' )
for i , _ in enumerate ( buffer ) :
try :
result = ( _ [ key ] == s )
if result :
return i
except :
pass
##################################################################################################### BOOMBOX CONFIG DATABASE OPERATIONS - AUTOMATICALLY CREATES/REPAIRS/STAGES THE DATABASES
2022-07-24 13:09:17 +00:00
@irc3.extend
2022-07-25 16:30:54 +00:00
def db_diagnostics ( self , database_name , * args ) :
2022-07-24 13:09:17 +00:00
#####################################################################################################
2022-07-25 16:30:54 +00:00
# database_names = ['bbs_data','bbs_last','bbs_nicks','bbs_sites','bbs_token','bbs_tokenmirror']
2022-07-24 13:09:17 +00:00
#################################################################################################
2022-07-25 16:30:54 +00:00
index = - 1
#######################################
for i , database in enumerate ( self . database_names ) :
if database_name == database :
index = i
break
print ( f " ->db_diagnostics: index: { index } - database: { database_name } " )
#############################################
print ( f ' \t \t - creating database { " " * 10 } { index + 1 } / { len ( self . database_names ) } - { self . database_names [ index ] } ' )
automation_flag = False
2022-07-25 17:17:53 +00:00
######################################################################## database: 0/5 - bbs_data
2022-07-25 16:30:54 +00:00
if database_name == self . database_names [ 0 ] :
2022-07-24 13:09:17 +00:00
#############################################################################################
try :
2022-07-25 16:30:54 +00:00
db = [ ]
db . append ( { ' nicks ' : { " dr1p " : 1 } , ' title ' : ' fenix flexin - 10 toes ( dr1ph0p m1x ) ' , ' url ' : ' https://soundcloud.com/vanta_sec/fenix-flexin-10-toes-dr1ph0p-m1x ' , ' token ' : ' 06660 ' , ' timestamp ' : 1658706829.869036 , ' site ' : ' soundcloud ' , ' hits ' : 1 } )
self . bot . db . setlist ( database_name , db )
if db : automation_flag = not automation_flag
2022-07-24 13:09:17 +00:00
except :
2022-07-25 16:30:54 +00:00
pass
#############################################################################################
######################################################################## database: 1/5 - bbs_last
elif database_name == self . database_names [ 1 ] :
2022-07-24 13:09:17 +00:00
#############################################################################################
try :
2022-07-25 16:30:54 +00:00
db = [ ]
for _ in range ( 0 , self . bot . bbs . ceiling__last_songs ) :
2022-07-25 17:17:53 +00:00
db . append ( ' ' )
2022-07-25 16:30:54 +00:00
db . pop ( )
db . append ( [ " dr1p " , " soundcloud " , " fenix flexin - 10 toes ( dr1ph0p m1x ) " , " 06660 " , " https://soundcloud.com/vanta_sec/fenix-flexin-10-toes-dr1ph0p-m1x " ] )
db . reverse ( )
self . bot . db . setlist ( database_name , db )
if db : automation_flag = not automation_flag
2022-07-24 13:09:17 +00:00
except :
2022-07-25 16:30:54 +00:00
pass
#############################################################################################
####################################################################### database: 2/5 - bbs_nicks
elif database_name == self . database_names [ 2 ] :
2022-07-24 13:09:17 +00:00
#############################################################################################
try :
2022-07-25 16:30:54 +00:00
db = [ ]
db . append ( { ' dr1p ' : { ' tally ' : 1 , ' bandcamp ' : 0 , ' soundcloud ' : 1 , ' spotify ' : 0 , ' youtube ' : 0 } } )
self . bot . db . setlist ( database_name , db )
if db : automation_flag = not automation_flag
2022-07-24 13:09:17 +00:00
except :
2022-07-25 16:30:54 +00:00
pass
#############################################################################################
########################################################################database: 3/5 - bbs_sites
elif database_name == self . database_names [ 3 ] :
#############################################################################################
2022-07-25 17:17:53 +00:00
try :
2022-07-25 16:30:54 +00:00
db = [ ]
db . append ( { ' soundcloud ' : 1 , ' youtube ' : 0 , ' spotify ' : 0 , ' bandcamp ' : 0 } )
self . bot . db . setlist ( database_name , db )
if db : automation_flag = not automation_flag
except :
pass
#############################################################################################
########################################################################database: 4/5 - bbs_token
elif database_name == self . database_names [ 4 ] :
2022-07-24 13:09:17 +00:00
#############################################################################################
try :
2022-07-25 16:30:54 +00:00
db = [ ]
db . append ( { ' 06660 ' : ' https://soundcloud.com/vanta_sec/fenix-flexin-10-toes-dr1ph0p-m1x ' } )
self . bot . db . setlist ( database_name , db )
if db : automation_flag = not automation_flag
2022-07-24 13:09:17 +00:00
except :
2022-07-25 16:30:54 +00:00
pass
#############################################################################################
##################################################################database: 5/5 - bbs_tokenmirror
elif database_name == self . database_names [ 5 ] :
2022-07-24 13:09:17 +00:00
#############################################################################################
try :
2022-07-25 16:30:54 +00:00
db = [ ]
db . append ( { ' https://soundcloud.com/vanta_sec/fenix-flexin-10-toes-dr1ph0p-m1x ' : ' 06660 ' } )
self . bot . db . setlist ( database_name , db )
if db : automation_flag = not automation_flag
2022-07-24 13:09:17 +00:00
except :
2022-07-25 16:30:54 +00:00
pass
#############################################################################################
2022-07-24 13:09:17 +00:00
#################################################################################################
2022-07-25 16:30:54 +00:00
msg = f ' creating database { index + 1 } / { len ( self . database_names ) } - { self . database_names [ index ] } '
if automation_flag :
status = ' \t \t + success '
2022-07-24 13:09:17 +00:00
else :
2022-07-25 16:30:54 +00:00
status = ' \t \t - failure '
print ( f ' { status } : { msg } ' )
2022-07-25 17:17:53 +00:00
#################################################################################################
2022-07-25 16:30:54 +00:00
################################################################################################# EOF
2022-07-25 17:17:53 +00:00
##################################################################################################### EOF