Exemple #1
0
 def _CreateAudioDB(self):
     try:
         self._Connect()
         cursor = self.db.cursor()
         sqlQuery = "CREATE TABLE IF NOT EXISTS audios (audioTitle, audioID, audioFile, audioDownloadCount)"
         cursor.execute(sqlQuery)
         ColoredPrint.GreenPrint("Ses veri tabanı oluşturuldu.")
     except:
         self.logManager.AddLog(
             "Ses veri tabanı oluşturulurken bir hata meydana geldi!")
         ColoredPrint.RedPrint(
             "Ses veri tabanı oluşturulurken bir hata meydana geldi!")
     finally:
         self.db.close()
Exemple #2
0
 def _CreateUserDB(self):
     try:
         self._Connect()
         cursor = self.db.cursor()
         sqlQuery = "CREATE TABLE IF NOT EXISTS users (userID, userName, userVideoDownloadCount, userAudioDownloadCount, userSearchCount)"
         cursor.execute(sqlQuery)
         ColoredPrint.GreenPrint("Kullanıcı veri tabanı oluşturuldu.")
     except:
         self.logManager.AddLog(
             "Kullanıcı veri tabanı oluşturulurken bir hata meydana geldi!")
         ColoredPrint.RedPrint(
             "Kullanıcı veri tabanı oluşturulurken bir hata meydana geldi!")
     finally:
         self.db.close()
Exemple #3
0
 def _CreateBotStatsDB(self):
     try:
         self._Connect()
         cursor = self.db.cursor()
         sqlQuery = "CREATE TABLE IF NOT EXISTS stats (botID, audioDownloadCount, videoDownloadCount, searchCount, userCount)"
         cursor.execute(sqlQuery)
         ColoredPrint.GreenPrint("İstatistik veri tabanı oluşturuldu.")
     except:
         self.logManager.AddLog(
             "İstatistik veri tabanı oluşturulurken bir hata meydana geldi!"
         )
         ColoredPrint.RedPrint(
             "İstatistik veri tabanı oluşturulurken bir hata meydana geldi!"
         )
     finally:
         self.db.close()
Exemple #4
0
    def AddLog(self, errorText):
        _nowTime = datetime.now()
        _nowTime = datetime.strftime(_nowTime, "%c")
        logFile = open(os.getcwd() + "/logs/" + self._logFileName + ".txt",
                       "a")
        try:
            with logFile as f:
                f.write(f"\nDate : {_nowTime}\nError: {errorText}\n")
            ColoredPrint.RedPrint(f'Date : {_nowTime}\nError: {errorText}\n')
        except:
            ColoredPrint.RedPrint(
                "Log oluşturulurken bir sorun meydana geldi!")
        finally:
            logFile.close()


#endregion
Exemple #5
0
 def AddBot(self, botID=1):
     try:
         self._Connect()
         cursor = self.db.cursor()
         sqlQuery = "INSERT INTO stats (botID, audioDownloadCount, videoDownloadCount, searchCount, userCount) VALUES (?,?,?,?,?)"
         sqlValues = (botID, 0, 0, 0, 0)
         cursor.execute(sqlQuery, sqlValues)
         self.db.commit()
         ColoredPrint.GreenPrint(f"Bot eklendi. \nBot ID : {botID}")
     except:
         self.logManager.AddLog(
             f"Veri tabanına bot eklenirken bir hata meydana geldi! \nBot ID : {botID}"
         )
         ColoredPrint.RedPrint(
             f"Veri tabanına bot eklenirken bir hata meydana geldi! \nBot ID : {botID}"
         )
     finally:
         self.db.close()
Exemple #6
0
 def AddVideo(self, videoTitle, videoID, videoFile):
     try:
         self._Connect()
         cursor = self.db.cursor()
         sqlQuery = "INSERT INTO videos (videoTitle, videoID, videoFile, videoDownloadCount) VALUES (?,?,?,?)"
         sqlValues = (videoTitle, videoID, videoFile, 1)
         cursor.execute(sqlQuery, sqlValues)
         self.db.commit()
         ColoredPrint.GreenPrint(
             f"Video eklendi. \nVideo Başlığı : {videoTitle} \nVideo ID : {videoID}"
         )
     except:
         self.logManager.AddLog(
             f"Veri tabanına video eklenirken bir hata meydana geldi! \nVideo Title : {videoTitle} \nVideo ID : {videoID}\nVideo File : {videoFile}"
         )
         ColoredPrint.RedPrint(
             f"Veri tabanına video eklenirken bir hata meydana geldi! \nVideo Title : {videoTitle} \nVideo ID : {videoID}\nVideo File : {videoFile}"
         )
     finally:
         self.db.close()
Exemple #7
0
 def AddUser(self, userID, userName):
     try:
         self._Connect()
         cursor = self.db.cursor()
         sqlQuery = "INSERT INTO users (userID, userName, userVideoDownloadCount, userAudioDownloadCount, userSearchCount) VALUES (?,?,?,?,?)"
         sqlValues = (userID, userName, 0, 0, 0)
         cursor.execute(sqlQuery, sqlValues)
         self.db.commit()
         ColoredPrint.GreenPrint(
             f"Kullanıcı eklendi. \nKullanıcı adı : {userName}\nKullanıcı ID : {userID}"
         )
     except:
         self.logManager.AddLog(
             f"Veri tabanına kullanıcı eklenirken bir hata meydana geldi! \nKullanıcı ID : {userID}\nKullanıcı adı : {userName}"
         )
         ColoredPrint.RedPrint(
             f"Veri tabanına kullanıcı eklenirken bir hata meydana geldi! \nKullanıcı ID : {userID}\nKullanıcı adı : {userName}"
         )
     finally:
         self.db.close()
Exemple #8
0
 def AddAudio(self, audioTitle, audioID, audioFile):
     try:
         self._Connect()
         cursor = self.db.cursor()
         sqlQuery = "INSERT INTO audios (audioTitle, audioID, audioFile, audioDownloadCount) VALUES (?,?,?,?)"
         sqlValues = (audioTitle, audioID, audioFile, 1)
         cursor.execute(sqlQuery, sqlValues)
         self.db.commit()
         ColoredPrint.GreenPrint(
             f"Ses eklendi. \nSes Başlığı : {audioTitle} \nSes ID : {audioID}"
         )
     except:
         self.logManager.AddLog(
             f"Veri tabanına ses eklenirken bir hata meydana geldi! \nAudio Title : {audioTitle} \nAudio ID : {audioID}\nAudio File : {audioFile}"
         )
         ColoredPrint.RedPrint(
             f"Veri tabanına ses eklenirken bir hata meydana geldi! \nAudio Title : {audioTitle} \nAudio ID : {audioID}\nAudio File : {audioFile}"
         )
     finally:
         self.db.close()
 def SearchVideo(self, searchQuery):
     try:
         search = Search(searchQuery)
         return search.results
     except:
         self.logManager.AddLog(
             f"Video aranırken bir sorun meydana geldi! \nArama sorgusu : {searchQuery}"
         )
         ColoredPrint.RedPrint(
             f"Video aranırken bir sorun meydana geldi! \nArama sorgusu : {searchQuery}"
         )
Exemple #10
0
 def BotDataGet(self, botID=1):
     try:
         self._Connect()
         cursor = self.db.cursor()
         sqlQuery = "SELECT * FROM stats WHERE botID = %s" % botID
         datas = cursor.execute(sqlQuery).fetchone()
         return datas
     except:
         self.logManager.AddLog(
             f"Veri tabanından bot verileri çekilirken bir sorun meydana geldi! \nBot ID : {botID}"
         )
         ColoredPrint.RedPrint(
             f"Veri tabanından bot verileri çekilirken bir sorun meydana geldi! \nBot ID : {botID}"
         )
     finally:
         self.db.close()
Exemple #11
0
 def BotUserCountUpdate(self, botID=1):
     try:
         self._Connect()
         cursor = self.db.cursor()
         sqlQuery = "UPDATE stats SET userCount = userCount + 1 WHERE botID = %s" % botID
         cursor.execute(sqlQuery)
         self.db.commit()
     except:
         self.logManager.AddLog(
             f"Veri tabanında kullanıcı sayısı arttırılırken bir sorun meydana geldi! \nBot ID : {botID} "
         )
         ColoredPrint.RedPrint(
             f"Veri tabanında kullanıcı sayısı arttırılırken bir sorun meydana geldi! \nBot ID : {botID} "
         )
     finally:
         self.db.close()
Exemple #12
0
 def UserSearchCountUpdate(self, userID):
     try:
         self._Connect()
         cursor = self.db.cursor()
         sqlQuery = " UPDATE users SET userSearchCount = userSearchCount + 1 WHERE userID = %s" % userID
         cursor.execute(sqlQuery)
         self.db.commit()
         return True
     except:
         self.logManager.AddLog(
             f"Veri tabanında kullanıcı arama sayısı arttırılırken bir sorun meydana geldi! \nUser ID : {userID}"
         )
         ColoredPrint.RedPrint(
             f"Veri tabanında kullanıcı arama sayısı arttırılırken bir sorun meydana geldi! \nUser ID : {userID}"
         )
         return False
     finally:
         self.db.close()
Exemple #13
0
 def VideoDownloadCountUpdate(self, videoID):
     try:
         self._Connect()
         cursor = self.db.cursor()
         sqlQuery = " UPDATE videos SET videoDownloadCount = videoDownloadCount + 1 WHERE videoID = '%s'" % videoID
         cursor.execute(sqlQuery)
         self.db.commit()
         return True
     except:
         self.logManager.AddLog(
             f"Veri tabanında video indirme sayısı arttırılırken bir sorun meydana geldi! \nVideo ID : {videoID}"
         )
         ColoredPrint.RedPrint(
             f"Veri tabanında video indirme sayısı arttırılırken bir sorun meydana geldi! \nVideo ID : {videoID}"
         )
         return False
     finally:
         self.db.close()
 def DownloadVideo(self, videoURL):
     try:
         youtube = YouTube(f"https://www.youtube.com/watch?v={videoURL}")
         videoTitle = youtube.title
         fileName = self.FileNameFormatter(videoTitle) + ".mp4"
         if self.FileCheck(DownloadSettings.videoFolder + "/" +
                           fileName) == False:
             youtube.streams.get_highest_resolution().download(
                 output_path=DownloadSettings.videoFolder,
                 filename=fileName)
         return videoTitle, videoURL, DownloadSettings.videoFolder + "/" + fileName
     except:
         self.logManager.AddLog(
             f"Video indirilirken bir sorun meydana geldi! \nVideo bağlantısı : {videoURL}"
         )
         ColoredPrint.RedPrint(
             f"Video indirilirken bir sorun meydana geldi! \nVideo bağlantısı : {videoURL}"
         )
         return False
Exemple #15
0
 def CheckAudioWithAudioID(self, audioID):
     try:
         self._Connect()
         cursor = self.db.cursor()
         sqlQuery = "SELECT * FROM audios WHERE audioID = '%s'" % audioID
         check = cursor.execute(sqlQuery).fetchall()
         if len(check) > 0:
             return True
         else:
             return False
     except:
         self.logManager.AddLog(
             f"Veri tabanında ses doğrulanırken bir sorun meydana geldi! \nAudio ID : {audioID}"
         )
         ColoredPrint.RedPrint(
             f"Veri tabanında ses doğrulanırken bir sorun meydana geldi! \nAudio ID : {audioID}"
         )
         return False
     finally:
         self.db.close()
Exemple #16
0
 def CheckUserWithID(self, userID):
     try:
         self._Connect()
         cursor = self.db.cursor()
         sqlQuery = "SELECT * FROM users WHERE userID = %s" % userID
         check = cursor.execute(sqlQuery).fetchall()
         if len(check) > 0:
             return True
         else:
             return False
     except:
         self.logManager.AddLog(
             f"Veri tabanında kullanıcı doğrulanırken bir sorun meydana geldi! \nUser ID : {userID}"
         )
         ColoredPrint.RedPrint(
             f"Veri tabanında kullanıcı doğrulanırken bir sorun meydana geldi! \nUser ID : {userID}"
         )
         return False
     finally:
         self.db.close()
Exemple #17
0
 def CheckBotStatsWithID(self, botID=1):
     try:
         self._Connect()
         cursor = self.db.cursor()
         sqlQuery = "SELECT * FROM stats WHERE botID = %s" % botID
         check = cursor.execute(sqlQuery).fetchall()
         if len(check) > 0:
             return True
         else:
             return False
     except:
         self.logManager.AddLog(
             f"Veri tabanında bot doğrulanırken bir sorun meydana geldi! \nBot ID : {botID}"
         )
         ColoredPrint.RedPrint(
             f"Veri tabanında bot doğrulanırken bir sorun meydana geldi! \nBot ID : {botID}"
         )
         return False
     finally:
         self.db.close()
    def DownloadAudio(self, songURL):
        try:
            youtube = YouTube(f"https://www.youtube.com/watch?v={songURL}")
            songTitle = youtube.title
            fileName = self.FileNameFormatter(songTitle) + ".mp4"
            if self.FileCheck(DownloadSettings.musicFolder + "/" +
                              fileName) == False:
                youtube.streams.get_audio_only().download(
                    output_path=DownloadSettings.musicFolder,
                    filename=fileName)
            return songTitle, songURL, DownloadSettings.musicFolder + "/" + fileName
        except:
            self.logManager.AddLog(
                f"Ses indirilirken bir sorun meydana geldi! \nSes bağlantısı : {songURL}"
            )
            ColoredPrint.RedPrint(
                f"Ses indirilirken bir sorun meydana geldi! \nSes bağlantısı : {songURL}"
            )
            return False


#endregion
Exemple #19
0
    def SendMail(self, subject, content, toMail):
        try:
            message = MIMEMultipart("alternative")
            message["Subject"] = subject
            message["From"] = self.fromMail
            message["To"] = toMail

            _content = MIMEText(content.encode('utf-8'), _charset='utf-8')
            message.attach(_content)

            with smtplib.SMTP_SSL(self.smtpHost, self.smtpPort) as server:
                server.login(self.fromMail, self.fromPassword)
                server.sendmail(self.fromMail, toMail, message.as_string())
        except Exception as e:
            self.logManager.AddLog(
                f"Mail gönderilemedi!\nHata Kodu: {e}\nMail başlığı : {subject} \nMail içeriği : {content} \nAlıcı : {toMail}"
            )
            ColoredPrint.RedPrint(
                f"Mail gönderilemedi!\nHata Kodu: {e}\nMail başlığı : {subject} \nMail içeriği : {content} \nAlıcı : {toMail}"
            )


#endregion
Exemple #20
0
#endregion


#region Main
def main():
    updater = Updater(TelegramSettings.telegramAPI, use_context=True)
    dp = updater.dispatcher

    dp.add_handler(CommandHandler("start", StartCommand))
    dp.add_handler(CommandHandler("legal", LegalInfoCommand))
    dp.add_handler(CommandHandler("help", HelpCommand))
    dp.add_handler(CommandHandler("stats", StatsCommand))
    dp.add_handler(CommandHandler("urhoba", UrhobACommand))

    dp.add_handler(CommandHandler("search", SearchCommand))

    dp.add_handler(MessageHandler(Filters.text & ~Filters.command, Search))

    dp.add_handler(CallbackQueryHandler(ButtonCallBack))

    dp.add_error_handler(ErrorExcept)
    updater.start_polling(1)
    updater.idle()


#endregion

ColoredPrint.GreenPrint("Bot başlatıldı!")
main()
Exemple #21
0
 def _Connect(self):
     self.db = sqlite3.connect(DBSettings.sqliteDB)
     ColoredPrint.GreenPrint("Veri tabanına bağlanıldı.")