@@ -1,73 +0,0 @@
|
||||
import _sqlite3 as sql
|
||||
import os
|
||||
|
||||
# from platformcode import config
|
||||
from platformcode import config, logger
|
||||
|
||||
db = os.path.join(config.get_runtime_path(), 'kod_db.sqlite')
|
||||
# db = '/home/casa/.kodi/userdata/addon_data/plugin.video.kod/kod_db.sqlite'
|
||||
conn = sql.connect(db)
|
||||
conn.row_factory = lambda c, r: dict(zip([col[0] for col in c.description], r))
|
||||
cur = conn.cursor()
|
||||
baseQuery = "select channels.*,(select group_concat(category) from categories WHERE categories.channel=id) as 'categories', (select group_concat(language) from languages WHERE languages.channel=id) as 'language' from channels "
|
||||
thumb_path = 'https://raw.githubusercontent.com/kodiondemand/media/master/'
|
||||
|
||||
|
||||
def filter(category, language='all', adult=False):
|
||||
cur.execute(baseQuery + "join categories on channels.id=categories.channel where category=? and adult=? and active=1", (category,adult))
|
||||
ris = []
|
||||
for channel in cur.fetchall():
|
||||
el = {}
|
||||
for col in channel.keys():
|
||||
if channel[col] and col in ['categories', 'language']:
|
||||
el[col] = channel[col].split(',')
|
||||
elif col == 'thumbnail': # remote thumbnail
|
||||
el[col] = channel[col] if channel[col].startswith('http') else os.path.join(thumb_path, 'resources', "thumb", channel[col])
|
||||
elif channel[col]:
|
||||
el[col] = channel[col]
|
||||
else:
|
||||
el[col] = ''
|
||||
ris.append(el)
|
||||
# ris = [{channel[col].split(',') if col in ['category', 'language'] else channel[col]} for col in channel.keys() for channel in cur.fetchall()]
|
||||
logger.info(ris)
|
||||
|
||||
return ris
|
||||
|
||||
def get_channel_parameters(channel_id):
|
||||
cur.execute('select * from channels where id=?', (channel_id,))
|
||||
ris = cur.fetchall()[0]
|
||||
ris["channel"] = ris["id"]
|
||||
ris["title"] = ris["name"]
|
||||
ris["fanart"] = ''
|
||||
ris["compatible"] = True
|
||||
cur.execute('select category from categories where channel=?', (channel_id,))
|
||||
ris["categories"] = [cat["category"] for cat in cur.fetchall()]
|
||||
cur.execute('select language from languages where channel=?', (channel_id,))
|
||||
ris["language"] = [lang["language"] for lang in cur.fetchall()]
|
||||
ris["has_settings"] = False
|
||||
|
||||
return ris
|
||||
|
||||
|
||||
def create_db():
|
||||
import json
|
||||
cur.execute('delete from channels')
|
||||
for f in os.walk('../channels/'):
|
||||
for file in f[2]:
|
||||
if file.split('.')[-1] == 'json':
|
||||
j = json.load(open(os.path.join(f[0], file)))
|
||||
id = j.get('id', '')
|
||||
name = j.get('name', '')
|
||||
active = j.get('active', False)
|
||||
adult = j.get('adult', False)
|
||||
thumbnail = j.get('thumbnail', '')
|
||||
banner = j.get('banner', '')
|
||||
cur.execute('insert into channels values (?,?,?,?,?,?,?,?)', (id, name, active, adult, thumbnail, banner, '', ''))
|
||||
for cat in j.get('categories', ''):
|
||||
cur.execute('insert into categories values(?,?)', (id, cat))
|
||||
for cat in j.get('language', 'all'):
|
||||
cur.execute('insert into languages values(?,?)', (id, cat))
|
||||
conn.commit()
|
||||
|
||||
# print get_channel_parameters('altadefinizione01')
|
||||
# print create_db()
|
||||
Reference in New Issue
Block a user