def stream(self, args, client_class): self.c = client_class(args.directory, args=args, lt=self.lt) try: while True: try: s = socket.socket() res = s.connect_ex(('127.0.0.1', self.free_port)) if res: break finally: s.close() self.free_port += 1 self.server = StreamServer(('127.0.0.1', self.free_port), BTFileHandler, allow_range=True, status_fn=self.c.get_normalized_status) log('Started http server on port %d' % self.free_port) self.server.run() log('Starting btclient - libtorrent version %s' % self.lt.version) self.c.start_url(args.url) self.setup_torrent() if self.buffer(): f = self.c._file self.server.set_file(f) self.setup_play() while True: if self.setup_play(): log('************************************* GOING LOOP') #self.torrent.continueSession(self.contentId) self.loop() else: break log('************************************* GO NEXT?') if self.next_dl and self.next_dling and isinstance(self.next_contentId, int) and self.iterator == 100: self.contentId = self.next_contentId continue log('************************************* NO! break') break if '1' != self.__settings__.getSetting("keep_files") and 'Saved Files' not in self.userStorageDirectory: xbmc.sleep(1000) clearStorage(self.userStorageDirectory) else: if self.seeding_status: showMessage(self.localize('Information'), self.localize('Torrent is seeding. To stop it use Download Status.'), forced=True) else: if self.seeding: self.db_delete() showMessage(self.localize('Information'), self.localize('Torrent downloading is stopped.'), forced=True) log('Play ended') if self.server: self.server.stop() except Exception: traceback.print_exc() finally: self.on_exit()
def __init__(self, userStorageDirectory, torrentUrl, params={}): self.userStorageDirectory = userStorageDirectory self.torrentUrl = torrentUrl xbmc.Player.__init__(self) log("["+author+"Player] Initalized v"+__version__) self.params = params self.get = self.params.get self.contentId = int(self.get("url")) if self.get("seek"): self.seek = int(self.get("seek")) self.init() self.setup_engine() showMessage('[%sPlayer v%s] ' % (author, __version__), self.localize('Please Wait')) try: self.engine.start() self.setup_nextep() self.engine.activate_file(self.contentId) if self.buffer(): while True: log('['+author+'Player]: ************************************* GOING LOOP') if self.setup_play(): self.setup_subs() self.loop() WatchedHistoryDB().add(self.basename, foldername(self.getContentList()[self.contentId]['title']), self.watchedTime, self.totalTime, self.contentId, self.fullSize) else: log('['+author+'Player]: ************************************* break') break log('['+author+'Player]: ************************************* GO NEXT?') if self.next_dl and self.next_contentId != False and isinstance(self.next_contentId, int) and self.iterator == 100: if not self.next_play: xbmc.sleep(3000) if not xbmcgui.Dialog().yesno( self.localize('[%sPlayer v%s] ' % (author, __version__)), self.localize('Would you like to play next episode?')): break self.contentId = self.next_contentId self.engine.activate_file(self.contentId) showMessage('[%sPlayer v%s] ' % (author, __version__), self.localize('Please Wait')) continue log('['+author+'Player]: ************************************* NO! break') break except: import traceback log(traceback.format_exc()) finally: self.engine.close() xbmc.Player().stop() if '1' != self.__settings__.getSetting("keep_files") and 'Saved Files' not in self.userStorageDirectory: xbmc.sleep(1000) clearStorage(self.userStorageDirectory) else: #if self.seeding_status: #showMessage(self.localize('Information'), # self.localize('Torrent is seeding. To stop it use Download Status.'), forced=True) #else: #if self.seeding: self.db_delete() showMessage(self.localize('Information'), self.localize('Torrent downloading is stopped.'), forced=True)
def __init__(self, userStorageDirectory, torrentUrl, params={}): self.userStorageDirectory = userStorageDirectory self.torrentUrl = torrentUrl xbmc.Player.__init__(self) log("[TorrentPlayer] Initalized") self.params = params self.get = self.params.get self.contentId = int(self.get("url")) if self.get("seek"): self.seek = int(self.get("seek")) log('[TorrentPlayer] Seek='+str(self.seek)) self.torrent = Downloader.Torrent(self.userStorageDirectory, self.torrentUrl, self.torrentFilesDirectory).player try: if self.get("url2"): self.ids_video = urllib.unquote_plus(self.get("url2")).split(',') else: self.ids_video = self.get_ids() except: pass self.init() self.setup_torrent() if self.buffer(): while True: if self.setup_play(): debug('************************************* GOING LOOP') self.torrent.startSession() self.torrent.continueSession(self.contentId) self.loop() WatchedHistoryDB().add(self.basename, foldername(self.torrent.getContentList()[self.contentId]['title']), self.watchedTime, self.totalTime, self.contentId, self.fullSize / 1024 / 1024) else: break debug('************************************* GO NEXT?') if self.next_dl and self.next_dling and isinstance(self.next_contentId, int) and self.iterator == 100: if not self.next_play: xbmc.sleep(3000) if not xbmcgui.Dialog().yesno( self.localize('python-libtorrent'), self.localize('Would you like to play next episode?'), self.display_name): break self.contentId = self.next_contentId continue debug('************************************* NO! break') break self.torrent.stopSession() self.torrent.threadComplete = True self.torrent.checkThread() if '1' != self.__settings__.getSetting("keep_files") and 'Saved Files' not in self.userStorageDirectory: xbmc.sleep(1000) clearStorage(self.userStorageDirectory) else: if self.seeding_status: showMessage(self.localize('Information'), self.localize('Torrent is seeding. To stop it use Download Status.'), forced=True) else: if self.seeding: self.db_delete() showMessage(self.localize('Information'), self.localize('Torrent downloading is stopped.'), forced=True)
def __init__(self, userStorageDirectory, torrentUrl, params={}): print '!!!!!!!!!!!!!!!!!! BORN ' + self.__class__.__name__ self.userStorageDirectory = userStorageDirectory self.torrentUrl = torrentUrl xbmc.Player.__init__(self) log("[TorrentPlayer] Initalized") self.params = params self.get = self.params.get self.contentId = int(self.get("url")) self.torrent = Downloader.Torrent(self.userStorageDirectory, self.torrentUrl, self.torrentFilesDirectory).player try: if self.get("url2"): self.ids_video = urllib.unquote_plus( self.get("url2")).split(',') else: self.ids_video = self.get_ids() except: pass self.init() self.setup_torrent() if self.buffer(): while True: if self.setup_play(): debug('************************************* GOING LOOP') self.torrent.startSession() self.torrent.continueSession(self.contentId) self.loop() else: break debug('************************************* GO NEXT?') if self.next_dl and self.next_dling and isinstance( self.next_contentId, int) and self.iterator == 100: self.contentId = self.next_contentId continue debug('************************************* NO! break') break self.torrent.stopSession() self.torrent.threadComplete = True self.torrent.checkThread() if '1' != self.__settings__.getSetting( "keep_files" ) and 'Saved Files' not in self.userStorageDirectory: xbmc.sleep(1000) clearStorage(self.userStorageDirectory) else: if self.seeding_status: showMessage( self.localize('Information'), self.localize( 'Torrent is seeding. To stop it use Download Status.'), forced=True) else: if self.seeding: self.db_delete() showMessage(self.localize('Information'), self.localize('Torrent downloading is stopped.'), forced=True)
def __init__(self, userStorageDirectory, torrentUrl, params={}): self.userStorageDirectory = userStorageDirectory self.torrentUrl = torrentUrl xbmc.Player.__init__(self) log("[AnteoPlayer] Initalized") self.params = params self.get = self.params.get self.contentId = int(self.get("url")) if self.get("seek"): self.seek = int(self.get("seek")) #self.torrent = AnteoLoader(self.userStorageDirectory, self.torrentUrl, self.torrentFilesDirectory) self.init() self.setup_engine() with closing(self.engine): self.engine.start(self.contentId) self.setup_nextep() while True: if self.buffer(): log('[AnteoPlayer]: ************************************* GOING LOOP' ) if self.setup_play(): self.setup_subs() self.loop() WatchedHistoryDB().add(self.basename, self.watchedTime, self.totalTime, self.contentId, self.fullSize) else: log('[AnteoPlayer]: ************************************* break' ) break log('[AnteoPlayer]: ************************************* GO NEXT?' ) if self.next_dl and isinstance( self.next_contentId, int) and self.iterator == 100: self.contentId = self.next_contentId continue log('[AnteoPlayer]: ************************************* NO! break' ) break xbmc.Player().stop() if '1' != self.__settings__.getSetting( "keep_files" ) and 'Saved Files' not in self.userStorageDirectory: xbmc.sleep(1000) clearStorage(self.userStorageDirectory) else: #if self.seeding_status: #showMessage(self.localize('Information'), # self.localize('Torrent is seeding. To stop it use Download Status.'), forced=True) #else: #if self.seeding: self.db_delete() showMessage(self.localize('Information'), self.localize('Torrent downloading is stopped.'), forced=True)
def __init__(self, userStorageDirectory, torrentUrl, params={}): self.userStorageDirectory = userStorageDirectory self.torrentUrl = torrentUrl xbmc.Player.__init__(self) log("[TorrentPlayer] Initalized") self.params = params self.get = self.params.get self.contentId = int(self.get("url")) self.torrent = Downloader.Torrent(self.userStorageDirectory, self.torrentUrl, self.torrentFilesDirectory).player try: if self.get("url2"): self.ids_video = urllib.unquote_plus(self.get("url2")).split(",") else: self.ids_video = self.get_ids() except: pass self.init() self.setup_torrent() if self.buffer(): while True: if self.setup_play(): debug("************************************* GOING LOOP") self.torrent.startSession() self.torrent.continueSession(self.contentId) self.loop() WatchedHistoryDB().add( self.basename, self.watchedTime, self.totalTime, self.contentId, self.fullSize / 1024 / 1024 ) else: break debug("************************************* GO NEXT?") if self.next_dl and self.next_dling and isinstance(self.next_contentId, int) and self.iterator == 100: self.contentId = self.next_contentId continue debug("************************************* NO! break") break self.torrent.stopSession() self.torrent.threadComplete = True self.torrent.checkThread() if "1" != self.__settings__.getSetting("keep_files") and "Saved Files" not in self.userStorageDirectory: xbmc.sleep(1000) clearStorage(self.userStorageDirectory) else: if self.seeding_status: showMessage( self.localize("Information"), self.localize("Torrent is seeding. To stop it use Download Status."), forced=True, ) else: if self.seeding: self.db_delete() showMessage(self.localize("Information"), self.localize("Torrent downloading is stopped."), forced=True)
def __init__(self, userStorageDirectory, torrentUrl, params={}): self.userStorageDirectory = userStorageDirectory self.torrentUrl = torrentUrl xbmc.Player.__init__(self) log("[AnteoPlayer] Initalized") self.params = params self.get = self.params.get self.contentId = int(self.get("url")) if self.get("seek"): self.seek = int(self.get("seek")) #self.torrent = AnteoLoader(self.userStorageDirectory, self.torrentUrl, self.torrentFilesDirectory) self.init() self.setup_engine() with closing(self.engine): self.engine.start(self.contentId) self.setup_nextep() while True: if self.buffer(): log('[AnteoPlayer]: ************************************* GOING LOOP') if self.setup_play(): self.setup_subs() self.loop() WatchedHistoryDB().add(self.basename, self.watchedTime, self.totalTime, self.contentId, self.fullSize) else: log('[AnteoPlayer]: ************************************* break') break log('[AnteoPlayer]: ************************************* GO NEXT?') if self.next_dl and self.next_contentId != False and isinstance(self.next_contentId, int) and self.iterator == 100: if not self.next_play: xbmc.sleep(3000) if not xbmcgui.Dialog().yesno( self.localize('Torrent2HTTP'), self.localize('Would you like to play next episode?')): break self.contentId = self.next_contentId continue log('[AnteoPlayer]: ************************************* NO! break') break xbmc.Player().stop() if '1' != self.__settings__.getSetting("keep_files") and 'Saved Files' not in self.userStorageDirectory: xbmc.sleep(1000) clearStorage(self.userStorageDirectory) else: #if self.seeding_status: #showMessage(self.localize('Information'), # self.localize('Torrent is seeding. To stop it use Download Status.'), forced=True) #else: #if self.seeding: self.db_delete() showMessage(self.localize('Information'), self.localize('Torrent downloading is stopped.'), forced=True)
def __init__(self, userStorageDirectory, torrentUrl, params={}): self.userStorageDirectory = userStorageDirectory self.torrentUrl = torrentUrl xbmc.Player.__init__(self) print ("[TorrentPlayer] Initalized") self.params = params self.get = self.params.get self.contentId = int(self.get("url")) self.torrent = Downloader.Torrent(self.userStorageDirectory, self.torrentUrl, self.torrentFilesDirectory).player try: if self.get("url2"): self.ids_video = urllib.unquote_plus(self.get("url2")).split(",") else: self.ids_video = self.get_ids() except: pass self.init() self.setup_torrent() if self.buffer(): while True: if self.setup_play(): # print '************************************* GOING LOOP' self.torrent.continueSession(self.contentId) self.loop() else: break # print '************************************* GO NEXT?' if self.next_dl and self.next_dling and isinstance(self.next_contentId, int) and self.iterator == 100: self.contentId = self.next_contentId continue # print '************************************* NO! break' break self.torrent.stopSession() self.torrent.threadComplete = True self.torrent.checkThread() if "false" == self.__settings__.getSetting("keep_files"): clearStorage(self.userStorageDirectory) else: if self.seeding_status: showMessage( Localization.localize("Information"), Localization.localize("Torrent is seeding. To stop it use Download Status."), forced=True, ) else: if self.seeding: self.db_delete() showMessage( Localization.localize("Information"), Localization.localize("Torrent downloading is stopped."), forced=True, )
def __init__(self, userStorageDirectory, torrentUrl, params={}): print '!!!!!!!!!!!!!!!!!! BORN '+self.__class__.__name__ self.userStorageDirectory = userStorageDirectory self.torrentUrl = torrentUrl xbmc.Player.__init__(self) log("[TorrentPlayer] Initalized") self.params = params self.get = self.params.get self.contentId = int(self.get("url")) self.torrent = Downloader.Torrent(self.userStorageDirectory, self.torrentUrl, self.torrentFilesDirectory).player try: if self.get("url2"): self.ids_video = urllib.unquote_plus(self.get("url2")).split(',') else: self.ids_video = self.get_ids() except: pass self.init() self.setup_torrent() if self.buffer(): while True: if self.setup_play(): debug('************************************* GOING LOOP') self.torrent.startSession() self.torrent.continueSession(self.contentId) self.loop() else: break debug('************************************* GO NEXT?') if self.next_dl and self.next_dling and isinstance(self.next_contentId, int) and self.iterator == 100: self.contentId = self.next_contentId continue debug('************************************* NO! break') break self.torrent.stopSession() self.torrent.threadComplete = True self.torrent.checkThread() if '1' != self.__settings__.getSetting("keep_files") and 'Saved Files' not in self.userStorageDirectory: xbmc.sleep(1000) clearStorage(self.userStorageDirectory) else: if self.seeding_status: showMessage(self.localize('Information'), self.localize('Torrent is seeding. To stop it use Download Status.'), forced=True) else: if self.seeding: self.db_delete() showMessage(self.localize('Information'), self.localize('Torrent downloading is stopped.'), forced=True)
def __init__(self, userStorageDirectory, torrentUrl, params={}): self.userStorageDirectory = userStorageDirectory self.torrentUrl = torrentUrl if not is_writable(self.userStorageDirectory): xbmcgui.Dialog().ok( Localization.localize('Torrenter v2'), Localization.localize( 'Your storage path is not writable or not local! Please change it in settings!' ), self.storageDirectory) sys.exit(1) xbmc.Player.__init__(self) log("[" + author + "Player] Initalized v" + __version__) self.params = params self.get = self.params.get self.contentId = int(self.get("url")) if self.get("seek"): self.seek = int(self.get("seek")) self.init() self.setup_engine() self.on_playback_resumed.append(self.engine.resume) self.on_playback_paused.append(self.engine.pause) showMessage('[%sPlayer v%s] ' % (author, __version__), self.localize('Please Wait')) try: self.engine.start() self.setup_nextep() self.engine.activate_file(self.contentId) if self.buffer(): while True: log('[' + author + 'Player]: ************************************* GOING LOOP' ) if self.setup_play(): WatchedHistoryDB().add( self.basename, self.torrentUrl, foldername(self.getContentList()[self.contentId] ['title']), self.watchedTime, self.totalTime, self.contentId, self.fullSize) self.setup_subs() self.loop() WatchedHistoryDB().add( self.basename, self.torrentUrl, foldername(self.getContentList()[self.contentId] ['title']), self.watchedTime, self.totalTime, self.contentId, self.fullSize) else: log('[' + author + 'Player]: ************************************* break' ) break log('[' + author + 'Player]: ************************************* GO NEXT?' ) if self.next_dl and self.next_contentId != False and isinstance( self.next_contentId, int) and self.iterator == 100: if not self.next_play: xbmc.sleep(3000) if not xbmcgui.Dialog().yesno( self.localize('[%sPlayer v%s] ' % (author, __version__)), self.localize( 'Would you like to play next episode?') ): break self.contentId = self.next_contentId self.engine.activate_file(self.contentId) showMessage('[%sPlayer v%s] ' % (author, __version__), self.localize('Please Wait')) continue log('[' + author + 'Player]: ************************************* NO! break' ) break except: import traceback log(traceback.format_exc()) finally: self.engine.close() xbmc.Player().stop() if '1' != self.__settings__.getSetting( "keep_files" ) and 'Saved Files' not in self.userStorageDirectory: xbmc.sleep(1000) clearStorage(self.userStorageDirectory) else: #if self.seeding_status: #showMessage(self.localize('Information'), # self.localize('Torrent is seeding. To stop it use Download Status.'), forced=True) #else: #if self.seeding: self.db_delete() showMessage(self.localize('Information'), self.localize('Torrent downloading is stopped.')) loadsw_onstop() # Reload Search Window
def stream(self, args, client_class): self.c = client_class(args.directory, args=args, lt=self.lt) try: while True: try: s = socket.socket() res = s.connect_ex(('127.0.0.1', self.free_port)) if res: break finally: s.close() self.free_port += 1 self.server = StreamServer(('127.0.0.1', self.free_port), BTFileHandler, allow_range=True, status_fn=self.c.get_normalized_status) log('Started http server on port %d' % self.free_port) self.server.run() log('Starting btclient - libtorrent version %s' % self.lt.version) self.c.start_url(args.url) self.setup_torrent() if self.buffer(): f = self.c._file self.server.set_file(f) self.setup_play() while True: if self.setup_play(): log('************************************* GOING LOOP') #self.torrent.continueSession(self.contentId) self.loop() else: break log('************************************* GO NEXT?') if self.next_dl and self.next_dling and isinstance( self.next_contentId, int) and self.iterator == 100: self.contentId = self.next_contentId continue log('************************************* NO! break') break if '1' != self.__settings__.getSetting( "keep_files" ) and 'Saved Files' not in self.userStorageDirectory: xbmc.sleep(1000) clearStorage(self.userStorageDirectory) else: if self.seeding_status: showMessage( self.localize('Information'), self.localize( 'Torrent is seeding. To stop it use Download Status.' ), forced=True) else: if self.seeding: self.db_delete() showMessage( self.localize('Information'), self.localize('Torrent downloading is stopped.'), forced=True) log('Play ended') if self.server: self.server.stop() except Exception: traceback.print_exc() finally: self.on_exit()
def __init__(self, userStorageDirectory, torrentUrl, params={}): self.userStorageDirectory = userStorageDirectory self.torrentUrl = torrentUrl if not is_writable(self.userStorageDirectory): xbmcgui.Dialog().ok(Localization.localize('Torrenter v2'), Localization.localize('Your storage path is not writable or not local! Please change it in settings!'), self.storageDirectory) sys.exit(1) xbmc.Player.__init__(self) log("["+author+"Player] Initalized v"+__version__) self.params = params self.get = self.params.get self.contentId = int(self.get("url")) if self.get("seek"): self.seek = int(self.get("seek")) #self.torrent = AnteoLoader(self.userStorageDirectory, self.torrentUrl, self.torrentFilesDirectory) self.init() self.setup_engine() with closing(self.engine): self.engine.start(self.contentId) self.setup_nextep() while True: if self.buffer(): log('[AnteoPlayer]: ************************************* GOING LOOP') if self.setup_play(): WatchedHistoryDB().add(self.basename, self.torrentUrl, foldername(self.getContentList()[self.contentId]['title']), self.watchedTime, self.totalTime, self.contentId, self.fullSize) self.setup_subs() self.loop() WatchedHistoryDB().add(self.basename, self.torrentUrl, foldername(self.getContentList()[self.contentId]['title']), self.watchedTime, self.totalTime, self.contentId, self.fullSize) else: log('[AnteoPlayer]: ************************************* break') break log('[AnteoPlayer]: ************************************* GO NEXT?') if self.next_dl and self.next_contentId != False and isinstance(self.next_contentId, int) and self.iterator == 100: if not self.next_play: xbmc.sleep(3000) if not xbmcgui.Dialog().yesno( self.localize('[%sPlayer v%s] ' % (author, __version__)), self.localize('Would you like to play next episode?')): break self.contentId = self.next_contentId continue log('[AnteoPlayer]: ************************************* NO! break') showMessage(self.localize('Information'), self.localize('Stopping the torrent2http process...')) break xbmc.Player().stop() if '1' != self.__settings__.getSetting("keep_files") and 'Saved Files' not in self.userStorageDirectory: xbmc.sleep(1000) clearStorage(self.userStorageDirectory) showMessage(self.localize('Information'), self.localize('torrent2http process stopped.')) loadsw_onstop() # Reload Search Window
def __init__(self, userStorageDirectory, torrentUrl, params={}): self.userStorageDirectory = userStorageDirectory self.torrentUrl = torrentUrl xbmc.Player.__init__(self) log("[TorrentPlayer] Initalized") self.params = params self.get = self.params.get self.contentId = int(self.get("url")) if self.get("seek"): self.seek = int(self.get("seek")) log('[TorrentPlayer] Seek=' + str(self.seek)) self.torrent = Downloader.Torrent(self.userStorageDirectory, self.torrentUrl, self.torrentFilesDirectory).player try: if self.get("url2"): self.ids_video = urllib.unquote_plus( self.get("url2")).split(',') else: self.ids_video = self.get_ids() except: pass self.init() self.setup_torrent() if self.buffer(): while True: if self.setup_play(): debug('************************************* GOING LOOP') self.torrent.startSession() self.torrent.continueSession(self.contentId) WatchedHistoryDB().add( self.basename, self.torrentUrl, foldername(self.torrent.getContentList()[ self.contentId]['title']), self.watchedTime, self.totalTime, self.contentId, self.fullSize / 1024 / 1024) self.loop() WatchedHistoryDB().add( self.basename, self.torrentUrl, foldername(self.torrent.getContentList()[ self.contentId]['title']), self.watchedTime, self.totalTime, self.contentId, self.fullSize / 1024 / 1024) else: break debug('************************************* GO NEXT?') if self.next_dl and self.next_dling and isinstance( self.next_contentId, int) and self.iterator == 100: if not self.next_play: xbmc.sleep(3000) if not xbmcgui.Dialog().yesno( self.localize('python-libtorrent'), self.localize( 'Would you like to play next episode?'), self.display_name): break self.contentId = self.next_contentId continue debug('************************************* NO! break') break self.torrent.stopSession() self.torrent.threadComplete = True self.torrent.checkThread() if '1' != self.__settings__.getSetting( "keep_files" ) and 'Saved Files' not in self.userStorageDirectory: xbmc.sleep(1000) clearStorage(self.userStorageDirectory) else: if self.seeding_status: showMessage( self.localize('Information'), self.localize( 'Torrent is seeding. To stop it use Download Status.')) else: if self.seeding: self.db_delete() showMessage(self.localize('Information'), self.localize('Torrent downloading is stopped.')) loadsw_onstop() # Reload Search Window
async def on_message(message): # prevent bot from talking to itself if message.author == client.user: return # commands # TODO: make commands based on DB # skips comparisons if message is not command if message.content.lower().startswith('!noticebot'.lower()): # output commands list if message.content.lower() == '!noticebot'.lower(): msg = 'these are my commands: !noticeBot, !noticeBot sub, !noticeBot unsub, !noticeBot clearDB, !noticeBot announce'.format(message) await client.send_message(message.channel, msg) # clears database elif message.content.lower() == '!noticeBot clearDB'.lower(): # TODO: make user id compare to list of authorized user ids if message.author.id == '174602020672503808': functions.clearStorage() msg = 'authorized user {0.author.mention}, clearing database'.format(message) else: msg = 'unauthorized user {0.author.mention}'.format(message) await client.send_message(message.channel, msg) # subscribes user to follow channel which message was sent in elif message.content.lower() == '!noticeBot sub'.lower(): user1 = classes.User(message.author.name, message.author.id, [message.channel.id], message.author) if functions.userInList(user1, message.channel.id): msg = ('user {0.author.mention} already subbed to channel "' + message.channel.name + '"').format(message) else: msg = ('adding user {0.author.mention} to sublist for channel "' + message.channel.name +'"').format(message) functions.addUser(user1, message.channel.id) await client.send_message(message.channel, msg) elif message.content.lower() == '!noticeBot unsub'.lower(): user1 = classes.User(message.author.name, message.author.id, [message.channel.id], message.author) if functions.userInList(user1, message.channel.id): msg = ('unsubbing user {0.author.mention} from sublist for channel "' + message.channel.name +'"').format(message) functions.removeUser(user1, message.channel.id) else: msg = ('User {0.author.mention} not in sublist for channel "' + message.channel.name +'"').format(message) await client.send_message(message.channel, msg) elif message.content.lower() == '!noticeBot announce'.lower(): if message.author.id == '174602020672503808': msg = 'authorized user {0.author.mention}, announcing message'.format(message) await client.send_message(message.channel, msg) msg = 'enter channel ID'.format(message) await client.send_message(message.channel, msg) msg = await client.wait_for_message(author=message.author, channel=message.channel) channelID = msg.content msg = 'enter message'.format(message) await client.send_message(message.channel, msg) msg = await client.wait_for_message(author=message.author, channel=message.channel) announceMSG = msg.content msg = ('Sending message to channel with ID ' + channelID).format(message) await client.send_message(message.channel, msg) await client.send_message(client.get_channel(channelID), announceMSG) else: msg = 'unauthorized user {0.author.mention}'.format(message) await client.send_message(message.channel, msg) # sends messages to subscribed users for someUser in functions.getUsers(): if (message.channel.id in someUser.subbedChannels and message.author.name != someUser.name): msg = message.author.name + " har skickat ett meddelande i servern " + message.server.name + " i kanalen " + message.channel.name.format(message) await client.send_message(someUser.userClassObject, msg)