예제 #1
0
 async def load_with(self, searcher: Searcher,
                     song_info: SongInfo) -> Searcher:
     try:
         return await searcher.download(song_info, loop=self.bot.loop)
     except Exception as e:
         logerr(f"Impossible to download song {e}")
     return None
예제 #2
0
 def find(self, query: str) -> SongInfo:
     try:
         song_info: SongInfo = SongInfo()
         song_info.fromYT(YoutubeSearch(query, max_results=1).to_dict()[0])
         print("Found", song_info.title)
         loginfo(f"Found {song_info.title} : {song_info.duration}")
         return song_info
     except Exception as e:
         logerr(f"YoutubeSearch({query}, max_results=1) {e}")
         return None
예제 #3
0
    def __init__(self):
        self.NO_MATRIX = False
        try:
            self.recommendation_matrix = pd.read_csv(
                'movie/secret_recommendation_matrix.csv', index_col='movie')
        except OSError:
            self.NO_MATRIX = True
            logerr('No movie/secret_recommendation_matrix.csv')

        self.user_dict = {
            'Андрей': 0,
            'Влад': 1,
            'Артем': 2,
            'Леха': 3,
            'Иван': 4,
            'Димас': 5,
            'Санек': 6
        }
예제 #4
0
 def find(self, query: str) -> SongInfo:
     print("Finding", query)
     try:
         song_info: SongInfo = SongInfo()
         search_result = list(self.vk_audio.search(query, count=1))
         if len(search_result) == 0:
             loginfo(f"vk_audio({query}, count=1) can't find any song")
             return None
         out = search_result[0]
         song_info.fromVK(out)
         print("Found", song_info.title)
         loginfo(f"Found {song_info.title} : {song_info.duration}")
         return song_info
     except Exception as e:
         logerr(f"vk_audio({query}, count=1) {e}")
         self.vk_session.auth()
         self.vk_audio = vk_api.audio.VkAudio(self.vk_session)
         return None
예제 #5
0
    def _update_sheet(self):
        if abs(localtime().tm_min - self._last_update) <= 1:
            return

        self._last_update = localtime().tm_min
        loginfo("Updating remote...")
        print("Updating remote...")
        if self._any_updates:
            try:
                self.db.write_data(self.songs)
                self._create_song_list()
                self._any_updates = False
            except Exception:
                logerr("gs.write_data(songs_list)")
                print("ERROR acquired when gs.write_data(songs_list)")
        else:
            loginfo("Nothing to update")
            print("Nothing to update")
예제 #6
0
 def __init__(self, *, source, song_info, filename, volume=0.5):
     if source:
         super().__init__(source,
                          song_info=song_info,
                          filename=filename,
                          volume=volume)
     else:
         super().__init__(discord.FFmpegPCMAudio(stubfile,
                                                 **ffmpeg_options),
                          song_info=song_info,
                          volume=volume,
                          filename=filename)
         self.vk_session = vk_api.VkApi(vk['login'], vk['password'])
         try:
             self.vk_session.auth()
         except vk_api.AuthError as error_msg:
             print(error_msg)
             logerr(str(error_msg))
             return
         self.vk_audio = vk_api.audio.VkAudio(self.vk_session)
예제 #7
0
 def _after_run_playlist(self, err):
     self.is_playing = False
     if err:
         logerr(err)
     else:
         asyncio.ensure_future(self.run_playlist(), loop=self.bot.loop)