本文整理汇总了Python中rainwave.user.User.ensure_api_key方法的典型用法代码示例。如果您正苦于以下问题:Python User.ensure_api_key方法的具体用法?Python User.ensure_api_key怎么用?Python User.ensure_api_key使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类rainwave.user.User
的用法示例。
在下文中一共展示了User.ensure_api_key方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Bootstrap
# 需要导入模块: from rainwave.user import User [as 别名]
# 或者: from rainwave.user.User import ensure_api_key [as 别名]
class Bootstrap(api.web.APIHandler):
description = (
"Bootstrap a Rainwave client. Provides user info, API key, station info, relay info, and more. "
"If you run a GET query to this URL, you will receive a Javascript file containing a single variable called BOOTSTRAP. While this is largely intended for the purposes of the main site, you may use this. "
"If you run a POST query to this URL, you will receive a JSON object."
)
phpbb_auth = True
auth_required = False
login_required = False
sid_required = False
allow_get = False
def prepare(self):
super(Bootstrap, self).prepare()
if not self.user:
self.user = User(1)
self.user.ensure_api_key()
# def finish(self, *args, **kwargs):
# self.write_output()
# super(Bootstrap, self).finish(*args, **kwargs)
def get(self):
self.set_header("Content-Type", "text/javascript")
self.append("locales", api.locale.locale_names)
self.append("cookie_domain", config.get("cookie_domain"))
self.post()
self.write("var BOOTSTRAP=")
def post(self):
info.attach_info_to_request(self, extra_list=self.get_cookie("r4_active_list"))
self.append("stream_filename", config.get_station(self.sid, "stream_filename"))
self.append("station_list", config.station_list)
self.append("relays", config.public_relays[self.sid])
示例2: MainIndex
# 需要导入模块: from rainwave.user import User [as 别名]
# 或者: from rainwave.user.User import ensure_api_key [as 别名]
class MainIndex(api.web.HTMLRequest):
description = "Main Rainwave page."
auth_required = False
login_required = False
sid_required = False
def prepare(self):
super(MainIndex, self).prepare()
self.json_payload = []
if not self.user:
self.user = User(1)
self.user.ensure_api_key(self.request.remote_ip)
self.user.data['sid'] = self.sid
def append(self, key, value):
self.json_payload.append({ key: value })
def get(self):
info.attach_info_to_request(self, all_lists=True)
self.append("api_info", { "time": int(time.time()) })
self.render("index.html", request=self,
site_description=self.locale.translate("station_description_id_%s" % self.sid),
revision_number=config.build_number,
api_url=config.get("api_external_url_prefix"),
cookie_domain=config.get("cookie_domain"),
locales=api.locale.locale_names_json)
示例3: MainIndex
# 需要导入模块: from rainwave.user import User [as 别名]
# 或者: from rainwave.user.User import ensure_api_key [as 别名]
class MainIndex(api.web.HTMLRequest):
description = "Main Rainwave page."
auth_required = config.has("index_requires_login") and config.get("index_requires_login")
login_required = config.has("index_requires_login") and config.get("index_requires_login")
sid_required = False
beta = False
page_template = "r4_index.html"
js_dir = "js4"
def set_default_headers(self):
self.set_header("X-Frame-Options", "SAMEORIGIN")
def prepare(self):
super(MainIndex, self).prepare()
self.json_payload = {}
self.jsfiles = None
if not self.user:
self.user = User(1)
self.user.ensure_api_key()
if self.beta or config.get("web_developer_mode") or config.get("developer_mode") or config.get("test_mode"):
buildtools.bake_beta_css()
buildtools.bake_beta_templates()
self.jsfiles = []
for root, subdirs, files in os.walk(
os.path.join(os.path.dirname(__file__), "../static/%s" % self.js_dir)
): # pylint: disable=W0612
for f in files:
if f.endswith(".js"):
self.jsfiles.append(os.path.join(root[root.find("static/%s" % self.js_dir) :], f))
def append(self, key, value):
self.json_payload[key] = value
def get(self):
self.mobile = (
self.request.headers.get("User-Agent").lower().find("mobile") != -1
or self.request.headers.get("User-Agent").lower().find("android") != -1
)
if not self.beta:
info.attach_info_to_request(self, extra_list=self.get_cookie("r4_active_list"))
self.append("api_info", {"time": int(timestamp())})
self.render(
self.page_template,
request=self,
site_description=self.locale.translate("station_description_id_%s" % self.sid),
revision_number=config.build_number,
jsfiles=self.jsfiles,
api_url=config.get("api_external_url_prefix"),
cookie_domain=config.get("cookie_domain"),
locales=api.locale.locale_names_json,
relays=config.public_relays_json[self.sid],
stream_filename=config.get_station(self.sid, "stream_filename"),
station_list=config.station_list_json,
apple_home_screen_icon=config.get_station(self.sid, "apple_home_screen_icon"),
mobile=self.mobile,
)
示例4: Bootstrap
# 需要导入模块: from rainwave.user import User [as 别名]
# 或者: from rainwave.user.User import ensure_api_key [as 别名]
class Bootstrap(api.web.APIHandler):
description = (
"Bootstrap a Rainwave client. Provides user info, API key, station info, relay info, and more. "
"If you run a GET query to this URL, you will receive a Javascript file containing a single variable called BOOTSTRAP. While this is largely intended for the purposes of the main site, you may use this. "
"If you run a POST query to this URL, you will receive a JSON object of the same data."
)
phpbb_auth = True
auth_required = False
login_required = False
sid_required = False
allow_get = False
def prepare(self):
super(Bootstrap, self).prepare()
if not self.user:
self.user = User(1)
self.user.ensure_api_key()
self.is_mobile = self.request.headers.get("User-Agent").lower().find("mobile") != -1 or self.request.headers.get("User-Agent").lower().find("android") != -1
def get(self):
self.set_header("Content-Type", "text/javascript")
self.post()
if self.is_mobile:
self.write("window.MOBILE = true;")
else:
self.write("window.MOBILE = false;")
self.write("var BOOTSTRAP=")
def post(self):
info.attach_info_to_request(self, live_voting=True)
self.append("build_version", config.build_number)
self.append("locale", self.locale.code)
self.append("locales", api.locale.locale_names)
self.append("cookie_domain", config.get("cookie_domain"))
self.append("on_init", [])
self.append("on_measure", [])
self.append("on_draw", [])
self.append("websocket_host", config.get("websocket_host"))
self.append("stream_filename", config.get_station(self.sid, "stream_filename"))
self.append("station_list", config.station_list)
self.append("relays", config.public_relays[self.sid])
if self.is_mobile:
self.append("mobile", True)
else:
self.append("mobile", False)
示例5: MainIndex
# 需要导入模块: from rainwave.user import User [as 别名]
# 或者: from rainwave.user.User import ensure_api_key [as 别名]
class MainIndex(api.web.HTMLRequest):
description = "Main Rainwave page."
auth_required = False
login_required = False
sid_required = False
beta = False
def prepare(self):
super(MainIndex, self).prepare()
self.json_payload = {}
self.jsfiles = None
if not self.user:
self.user = User(1)
self.user.ensure_api_key(self.request.remote_ip)
if self.beta or config.get("web_developer_mode") or config.get("developer_mode") or config.get("test_mode"):
buildtools.bake_css()
self.jsfiles = []
for root, subdirs, files in os.walk(os.path.join(os.path.dirname(__file__), "../static/js4")):
for f in files:
self.jsfiles.append(os.path.join(root[root.find("static/js4"):], f))
def append(self, key, value):
self.json_payload[key] = value
def get(self):
info.attach_info_to_request(self, extra_list=self.get_cookie("r4_active_list"))
self.append("api_info", { "time": int(time.time()) })
mobile = self.request.headers.get("User-Agent").lower().find("mobile") != -1 or self.request.headers.get("User-Agent").lower().find("android") != -1
self.render("r4_index.html", request=self,
site_description=self.locale.translate("station_description_id_%s" % self.sid),
revision_number=config.build_number,
jsfiles=self.jsfiles,
api_url=config.get("api_external_url_prefix"),
cookie_domain=config.get("cookie_domain"),
locales=api.locale.locale_names_json,
relays=config.public_relays_json[self.sid],
stream_filename=config.get_station(self.sid, "stream_filename"),
station_list=config.station_list_json,
mobile=mobile)
示例6: MainIndex
# 需要导入模块: from rainwave.user import User [as 别名]
# 或者: from rainwave.user.User import ensure_api_key [as 别名]
class MainIndex(api.web.HTMLRequest):
description = "Main Rainwave page."
def prepare(self):
super(MainIndex, self).prepare()
self.json_payload = []
if not self.user:
self.user = User(1)
self.user.ensure_api_key(self.request.remote_ip)
self.user.data['sid'] = self.sid
def append(self, key, value):
self.json_payload.append({ key: value })
def get(self):
info.attach_info_to_request(self, playlist=True, artists=True)
self.append("api_info", { "time": int(time.time()) })
self.set_header("Content-Type", "text/plain")
self.render("index.html", request=self,
site_description=self.locale.translate("station_description_id_%s" % self.sid),
revision_number=config.get("revision_number"),
api_url=config.get("api_external_url_prefix"),
cookie_domain=config.get("cookie_domain"))
示例7: MainIndex
# 需要导入模块: from rainwave.user import User [as 别名]
# 或者: from rainwave.user.User import ensure_api_key [as 别名]
class MainIndex(api.web.HTMLRequest):
description = "Main Rainwave page."
auth_required = config.has("index_requires_login") and config.get("index_requires_login")
login_required = config.has("index_requires_login") and config.get("index_requires_login")
sid_required = False
beta = False
page_template = "r5_index.html"
js_dir = "js5"
def set_default_headers(self):
self.set_header("X-Frame-Options", "SAMEORIGIN")
self.set_header("X-XSS-Protection", "1; mode=block")
self.set_header("X-Content-Type-Options", "nosniff")
if self.request.protocol == 'https':
self.set_header("Content-Security-Policy", config.csp_header)
self.set_header("Referrer-Policy", "origin")
self.set_header("Strict-Transport-Security", "max-age=63072000; includeSubDomains; preload")
def prepare(self):
if self.path_kwargs.get('station'):
self.sid = config.stream_filename_to_sid.get(self.path_kwargs['station'])
if not self.sid:
self.redirect(config.get("base_site_url"))
return
super(MainIndex, self).prepare()
if self.path_kwargs.get('station') is None:
self.redirect("{}{}/".format(config.get("base_site_url"), config.station_mount_filenames[self.sid]), permanent=True)
return
if config.get("enforce_ssl") and self.request.protocol != "https":
self.redirect("{}{}/".format(config.get("base_site_url"), config.station_mount_filenames[self.sid]), permanent=True)
return
if not config.get("developer_mode") and self.request.host != config.get("hostname"):
self.redirect("{}{}/".format(config.get("base_site_url"), config.station_mount_filenames[self.sid]), permanent=True)
return
if not cache.get_station(self.sid, "sched_current"):
raise APIException("server_just_started", "Rainwave is Rebooting, Please Try Again in a Few Minutes", http_code=500)
# self.json_payload = {}
self.jsfiles = None
if not self.user:
self.user = User(1)
self.user.ip_address = self.request.remote_ip
self.user.ensure_api_key()
if self.beta or config.get("web_developer_mode") or config.get("developer_mode") or config.get("test_mode"):
buildtools.bake_beta_css()
buildtools.bake_beta_templates()
self.jsfiles = []
for root, subdirs, files in os.walk(os.path.join(os.path.dirname(__file__), "../static/%s" % self.js_dir)): #pylint: disable=W0612
for f in files:
if f.endswith(".js"):
self.jsfiles.append(os.path.join(root[root.find("static/%s" % self.js_dir):], f))
# def append(self, key, value):
# self.json_payload[key] = value
def get(self, station=None):
self.mobile = self.request.headers.get("User-Agent").lower().find("mobile") != -1 or self.request.headers.get("User-Agent").lower().find("android") != -1
# if not self.beta:
# info.attach_info_to_request(self, extra_list=self.get_cookie("r4_active_list"))
# self.append("api_info", { "time": int(timestamp()) })
page_title = None
if (self.sid == config.get("default_station")):
page_title = self.locale.translate("page_title_on_google")
else:
page_title = "%s %s" % (self.locale.translate("page_title_on_google"), self.locale.translate("station_name_%s" % self.sid))
self.render(
self.page_template,
request=self,
site_description=self.locale.translate("station_description_id_%s" % self.sid),
revision_number=config.build_number,
jsfiles=self.jsfiles,
# api_url=config.get("api_external_url_prefix"),
# cookie_domain=config.get("cookie_domain"),
# locales=api.locale.locale_names_json,
# relays=config.public_relays_json[self.sid],
# stream_filename=config.get_station(self.sid, "stream_filename"),
# station_list=config.station_list_json,
mobile=self.mobile,
station_name=page_title,
dj=self.user.is_dj()
)
示例8: MainIndex
# 需要导入模块: from rainwave.user import User [as 别名]
# 或者: from rainwave.user.User import ensure_api_key [as 别名]
class MainIndex(api.web.HTMLRequest):
description = "Main Rainwave page."
auth_required = config.has("index_requires_login") and config.get("index_requires_login")
login_required = config.has("index_requires_login") and config.get("index_requires_login")
sid_required = False
beta = False
page_template = "r5_index.html"
js_dir = "js5"
def set_default_headers(self):
self.set_header("X-Frame-Options", "SAMEORIGIN")
def prepare(self):
super(MainIndex, self).prepare()
if not cache.get_station(self.sid, "sched_current"):
raise APIException(
"server_just_started", "Rainwave is Rebooting, Please Try Again in a Few Minutes", http_code=500
)
# self.json_payload = {}
self.jsfiles = None
if not self.user:
self.user = User(1)
self.user.ip_address = self.request.remote_ip
self.user.ensure_api_key()
if self.beta or config.get("web_developer_mode") or config.get("developer_mode") or config.get("test_mode"):
buildtools.bake_beta_css()
buildtools.bake_beta_templates()
self.jsfiles = []
for root, subdirs, files in os.walk(
os.path.join(os.path.dirname(__file__), "../static/%s" % self.js_dir)
): # pylint: disable=W0612
for f in files:
if f.endswith(".js"):
self.jsfiles.append(os.path.join(root[root.find("static/%s" % self.js_dir) :], f))
# def append(self, key, value):
# self.json_payload[key] = value
def get(self):
self.mobile = (
self.request.headers.get("User-Agent").lower().find("mobile") != -1
or self.request.headers.get("User-Agent").lower().find("android") != -1
)
# if not self.beta:
# info.attach_info_to_request(self, extra_list=self.get_cookie("r4_active_list"))
# self.append("api_info", { "time": int(timestamp()) })
page_title = None
if self.sid == config.get("default_station"):
page_title = self.locale.translate("page_title_on_google")
else:
page_title = "%s %s" % (
self.locale.translate("page_title_on_google"),
self.locale.translate("station_name_%s" % self.sid),
)
self.render(
self.page_template,
request=self,
site_description=self.locale.translate("station_description_id_%s" % self.sid),
revision_number=config.build_number,
jsfiles=self.jsfiles,
# api_url=config.get("api_external_url_prefix"),
# cookie_domain=config.get("cookie_domain"),
# locales=api.locale.locale_names_json,
# relays=config.public_relays_json[self.sid],
# stream_filename=config.get_station(self.sid, "stream_filename"),
# station_list=config.station_list_json,
mobile=self.mobile,
station_name=page_title,
dj=self.user.is_dj(),
)
示例9: MainIndex
# 需要导入模块: from rainwave.user import User [as 别名]
# 或者: from rainwave.user.User import ensure_api_key [as 别名]
class MainIndex(tornado.web.RequestHandler):
def prepare(self):
# TODO: Language
self.info = []
self.sid = fieldtypes.integer(self.get_cookie("r4sid", "1"))
if not self.sid:
self.sid = 1
if self.request.host == "game.rainwave.cc":
self.sid = 1
elif self.request.host == "ocr.rainwave.cc":
self.sid = 2
elif self.request.host == "covers.rainwave.cc" or self.request.host == "cover.rainwave.cc":
self.sid = 3
elif self.request.host == "chiptune.rainwave.cc":
self.sid = 4
elif self.request.host == "all.rainwave.cc":
self.sid = 5
self.set_cookie("r4sid", str(self.sid), expires_days=365, domain=".rainwave.cc")
self.user = None
if not fieldtypes.integer(self.get_cookie("phpbb3_38ie8_u", "")):
self.user = User(1)
else:
user_id = int(self.get_cookie("phpbb3_38ie8_u"))
if self.get_cookie("phpbb3_38ie8_sid"):
session_id = db.c_old.fetch_var("SELECT session_id FROM phpbb_sessions WHERE session_id = %s AND session_user_id = %s", (self.get_cookie("phpbb3_38ie8_sid"), user_id))
if session_id:
db.c_old.update("UPDATE phpbb_sessions SET session_last_visit = %s, session_page = %s WHERE session_id = %s", (time.time(), "rainwave", session_id))
self.user = User(user_id)
self.user.authorize(self.sid, None, None, True)
if not self.user and self.get_cookie("phpbb3_38ie8_k"):
can_login = db.c_old.fetch_var("SELECT 1 FROM phpbb_sessions_keys WHERE key_id = %s AND user_id = %s", (hashlib.md5(self.get_cookie("phpbb3_38ie8_k")).hexdigest(), user_id))
if can_login == 1:
self.user = User(user_id)
self.user.authorize(self.sid, None, None, True)
if not self.user:
self.user = User(1)
self.user.ensure_api_key(self.request.remote_ip)
self.user.data['sid'] = self.sid
# this is so that get_info can be called, makes us compatible with the custom web handler used elsewhere in RW
def append(self, key, value):
self.info.append({ key: value })
def get(self):
info.attach_info_to_request(self)
self.set_header("Content-Type", "text/plain")
self.render("index.html", user=self.user, info=tornado.escape.json_encode(self.info), sid=self.sid)
# @handle_url("authtest_beta")
# class BetaIndex(MainIndex):
# def get(self):
# if self.user.data['group_id'] not in (5, 4, 8, 12, 15, 14, 17):
# self.send_error(403)
# else:
# info.attach_info_to_request(self)
# self.set_header("Content-Type", "text/plain")
# self.render("index.html", user=self.user, info=tornado.escape.json_encode(self.info), sid=self.sid)