def get_details_from_songid(self): da = db_operation.Db('fm.db') details = json.loads(da.get_song(self.songid)) self.label = details["song"]["label"] self.name = details["song"]["name"] self.lrcurl = details["song"]["lrcurl"] self.picurl = details["song"]["picurl"] self.singer = details["song"]["singer"] self.songurl = details["song"]["songurl"]
def get_white_noise_songs(self): da = db_operation.Db('fm.db') recom_tem = da.get_songs_by_label("白噪音") song1 = song.Song() recom_ans = [] for i in range(len(recom_tem)): song1 = song.Song() song1.set_songid(recom_tem[i]) song1.get_details_from_songid() song_info = {} song_info["label"] = song1.label song_info["singer"] = song1.singer song_info["songurl"] = song1.songurl song_info["picurl"] = song1.picurl song_info["lrcurl"] = song1.lrcurl song_info["name"] = song1.name song_info["songid"] = song1.songid recom_ans.append(song_info) recom_ans = random.sample(recom_ans,50) return recom_ans
def get_one_by_like(self,songid): da = db_operation.Db('fm.db') da.add_to_songlist(self.uid,songid,"我喜欢") recom_ans = self.get_one_song() rec_song = da.get_recom_by_song(songid) #rec_song = random.sample(rec_song,1) siz = len(rec_song) new_rec=rec_song[int(siz/2)] rec_song = new_rec song1 = song.Song() song1.set_songid(rec_song) song1.get_details_from_songid() song_info = {} song_info["label"] = song1.label song_info["singer"] = song1.singer song_info["songurl"] = song1.songurl song_info["picurl"] = song1.picurl song_info["lrcurl"] = song1.lrcurl song_info["name"] = song1.name song_info["songid"] = song1.songid recom_ans.append(song_info) return recom_ans
def get_analysis(self): da = db_operation.Db('fm.db') return da.get_analysis(self.uid)
def get_recommendations(self): da = db_operation.Db('fm.db') return da.get_recom(self.uid)
def load_matrix(self): # 加载原始数据 matrix = {} # 生成二维喜好矩阵 da = db_operation.Db('fm.db') user_song = da.get_user_song(self.uid) return user_song
import bottle from bottle import get, post, request import json, os import db_operation import recom_operation import analysis_operation db = db_operation.Db("fm.db") recom = None analy = None idx = 0 cnt_song = -1 base_song_list = None #约80首 def check_login(name, password): #查询数据库 return False def save_new_user(name, password, email): #写入数据库 return True app = bottle.Bottle() @app.route('/fm') @app.route('/fm.html') def load_fm():