27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#
from channels import *
from config import *
import action
from uikit import uikit
import ahttp as http
import re
import json
from compat2and3 import StringIO
import copy
from uikit import gtk
|
|
|
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#
from channels import *
from config import *
import action
from uikit import uikit
import ahttp
import re
import json
from compat2and3 import StringIO
import copy
from uikit import gtk
|
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
# result list
entries = []
# common
if (cat == "common"):
# fetch
data = http.get(self.api + "common.json")
entries = json.load(StringIO(data))
# bookmarks
elif (cat == "personal") and self.user_pw():
data = http.get(self.api + "favoriten.json?user=" + self.user_pw()[0])
entries = json.load(StringIO(data))
# unknown
else:
self.parent.status("Unknown category")
pass
|
|
|
|
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
# result list
entries = []
# common
if (cat == "common"):
# fetch
data = ahttp.get(self.api + "common.json")
entries = json.load(StringIO(data))
# bookmarks
elif (cat == "personal") and self.user_pw():
data = ahttp.get(self.api + "favoriten.json?user=" + self.user_pw()[0])
entries = json.load(StringIO(data))
# unknown
else:
self.parent.status("Unknown category")
pass
|
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
# get data
row = self.parent.row()
if row:
row = copy.copy(row)
# convert PLS/M3U link to direct ICY stream url
if conf.myoggradio_morph and self.parent.channel().listformat != "url/direct":
row["url"] = http.fix_url(action.srv(row["url"]))
# prevent double check-ins
if row["title"] in (r.get("title") for r in self.streams["common"]):
pass
elif row["url"] in (r.get("url") for r in self.streams["common"]):
pass
|
|
|
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
# get data
row = self.parent.row()
if row:
row = copy.copy(row)
# convert PLS/M3U link to direct ICY stream url
if conf.myoggradio_morph and self.parent.channel().listformat != "url/direct":
row["url"] = ahttp.fix_url(action.srv(row["url"]))
# prevent double check-ins
if row["title"] in (r.get("title") for r in self.streams["common"]):
pass
elif row["url"] in (r.get("url") for r in self.streams["common"]):
pass
|
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
|
"typ": e["format"][6:],
"eintragen": "eintragen", # form
}
# just push data in, like the form does
if form:
self.login()
http.get(self.api + "c_neu.jsp", params=submit, ajax=1, post=1)
# use JSON interface
else:
http.get(self.api + "commonadd.json", params=submit, ajax=1)
# authenticate against MyOggRadio
def login(self):
login = self.user_pw()
if login:
data = dict(zip(["benutzer", "passwort"], login))
http.get(self.api + "c_login.jsp", params=data, ajax=1)
# let's hope the JSESSIONID cookie is kept
# returns login (user,pw)
def user_pw(self):
if len(conf.myoggradio_login) and conf.myoggradio_login != "user:password":
return conf.myoggradio_login.split(":")
|
|
|
|
|
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
|
"typ": e["format"][6:],
"eintragen": "eintragen", # form
}
# just push data in, like the form does
if form:
self.login()
ahttp.get(self.api + "c_neu.jsp", params=submit, ajax=1, post=1)
# use JSON interface
else:
ahttp.get(self.api + "commonadd.json", params=submit, ajax=1)
# authenticate against MyOggRadio
def login(self):
login = self.user_pw()
if login:
data = dict(zip(["benutzer", "passwort"], login))
ahttp.get(self.api + "c_login.jsp", params=data, ajax=1)
# let's hope the JSESSIONID cookie is kept
# returns login (user,pw)
def user_pw(self):
if len(conf.myoggradio_login) and conf.myoggradio_login != "user:password":
return conf.myoggradio_login.split(":")
|