├── README.md ├── ip.py ├── LICENSE └── oguz.py /README.md: -------------------------------------------------------------------------------- 1 | # ouz 2 | Sevdiğimiz bir telegram botu 3 | -------------------------------------------------------------------------------- /ip.py: -------------------------------------------------------------------------------- 1 | import cv2 2 | 3 | def facecount(photo): 4 | face_cascade = cv2.CascadeClassifier('haarcascades/haarcascade_frontalface_default.xml') 5 | eye_cascade = cv2.CascadeClassifier('haarcascades/haarcascade_eye.xml') 6 | img = cv2.imread(photo) 7 | gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 8 | faces = face_cascade.detectMultiScale(gray, 1.3, 5) 9 | counted = len(faces) 10 | return counted 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /oguz.py: -------------------------------------------------------------------------------- 1 | #-*- coding: utf-8 -*- 2 | #!/usr/bin/env python 3 | 4 | from telegram.ext import Updater 5 | from telegram.ext import CommandHandler 6 | from telegram.ext import MessageHandler, Filters 7 | import telegram 8 | import sys 9 | import logging 10 | import random 11 | from string import maketrans 12 | import time 13 | from ip import facecount 14 | 15 | root = logging.getLogger() 16 | root.setLevel(logging.INFO) 17 | 18 | ch = logging.StreamHandler(sys.stdout) 19 | ch.setLevel(logging.DEBUG) 20 | formatter = \ 21 | logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') 22 | ch.setFormatter(formatter) 23 | root.addHandler(ch) 24 | 25 | logger = logging.getLogger(__name__) 26 | 27 | 28 | class Oguz: 29 | 30 | def __init__(self): 31 | self.replies = [] 32 | self.default = ["","mutluluk parayla ölçülmüyor","Nerden buluyonuz boyle haberleri arkadas","Kimle konusuyorsunuz necdet bey", "Bi dalga gecmeyin ya","Nyucelsiz abnin ne keyfi olcak be","Neden hep ben suclu oluyorum","Belgesel felan izleyin sayin yucel", "Buyuk ikramiye cikmamis bize :(","cok iyi ya", "vay arkadas", 33 | "sorun diil ya", "dolar artmış", "kral dairesi kaana", "Her lafi kopyalayinca aynisi olunmuyor", "Serdar kaça kadar izin var", "Şifayı bir sahil bendedi olarak tanımlayabiliriz"] 34 | self.kripton = ["@nyucel"] 35 | self.gezgin = [u"gizlice geziyormuş", u"in yeri ayrı ya"] 36 | self.evli = ["@someone"] 37 | self.bekar = ["@otherone"] 38 | 39 | def sendMsg(self, bot, update, msg): 40 | alt_msg = random.choice(self.default) 41 | gezgin = random.choice(self.gezgin) 42 | if msg and msg not in self.replies[-5:]: 43 | bot.sendMessage(update.message.chat_id, text=msg, 44 | parse_mode=telegram.ParseMode.MARKDOWN) 45 | self.replies.append(msg) 46 | elif "alt_msg" not in self.replies[-4:]: 47 | bot.sendMessage(update.message.chat_id, text=alt_msg, 48 | parse_mode=telegram.ParseMode.MARKDOWN) 49 | self.replies.append("alt_msg") 50 | elif "gezgin" not in self.replies[-20:]: 51 | bot.sendMessage(update.message.chat_id, text=random.choice( 52 | self.kripton) + " " + gezgin, parse_mode=telegram.ParseMode.MARKDOWN) 53 | self.replies.append("gezgin") 54 | elif "seriousBusiness" not in self.replies[-20:]: 55 | who = random.choice( 56 | eval("self." + random.choice(["evli", "bekar"]))) 57 | if who in self.evli: 58 | bot.sendMessage(update.message.chat_id, text="cocuk ne zaman? " + 59 | who, parse_mode=telegram.ParseMode.MARKDOWN) 60 | else: 61 | bot.sendMessage(update.message.chat_id, text="evlilik ne zaman? " + 62 | who, parse_mode=telegram.ParseMode.MARKDOWN) 63 | self.replies.append("seriousBusiness") 64 | 65 | o = Oguz() 66 | 67 | 68 | def readable(sentence): 69 | cevir = {u'Ç': 'C', u'Ğ': 'G', u'İ': 'I', u'Ö': 'O', u'Ş': 'S', u'Ü': 'U', 70 | u'ç': 'c', u'ğ': 'g', u'ı': 'i', u'ö': 'o', u'ş': 's', u'ü': 'u'} 71 | for i, k in cevir.iteritems(): 72 | sentence = sentence.replace(i, k) 73 | return sentence 74 | 75 | 76 | def grammarNazi(word): 77 | typo = { 78 | 'hersey': u'her şey', 79 | 'yada': u'ya da', 80 | 'hicbirsey': u'hiçbir şey', 81 | 'rasgele': u'rastgele', 82 | 'sabahdan': u'sabahtan', 83 | 'bugunlerde': u'bu günlerde', 84 | 'pekcok': u'pek çok', 85 | } 86 | 87 | fix = lambda word, typo: "%s olacak ama" % ( 88 | typo[word]) if any(k in word for k in typo) else False 89 | return fix(word, typo) 90 | 91 | 92 | def start(bot, update): 93 | bot.sendMessage(update.message.chat_id, text='Selam genc') 94 | 95 | 96 | def help(bot, update): 97 | bot.sendMessage(update.message.chat_id, text='Noldu genc') 98 | 99 | 100 | def konus(bot, update): 101 | bot.sendMessage(-583652, text=update.message.text.replace("/konusx ", "")) 102 | 103 | 104 | def echo(bot, update): 105 | global o 106 | r = readable(update.message.text).lower() 107 | for w in r.split(): 108 | if grammarNazi(w): 109 | o.sendMsg(bot, update, grammarNazi(w)) 110 | 111 | 112 | if update.message.sticker: 113 | texts = [u"Grubun admini yok munya",u"Gercek mi bu",u"Nyucele lazim hadi bot muhabbet etmek iatiyor receple", u"bir sitikir insanı olarak nyucel",u"bu emojileri nerden şaapıyoruz",u"BİZİM ÇOK VAKTİMİZ OLMADIĞINDAN BU TÜR EMOJİLERİ ARATIP KULLANAMIYORUZ DA SAYIN YÜCEL"] 114 | o.sendMsg(bot, update, random.choice(texts)) 115 | 116 | if update.message.chat_id == "169359665": 117 | bot.sendMessage(update.message.chat_id, text='Hmm, upgrades?') 118 | elif "?" == r[-1]: 119 | texts = [u"sayın yücel bi basın açıklaması yapmıcak mı bu konuda, halkı aydınlatmıcak mı",u"ben mi cevap vereyim recep mi versin?", u"Hangi dilde bu kaan"] 120 | o.sendMsg(bot, update, random.choice(texts)) 121 | elif "pebble" in r: 122 | o.sendMsg(bot, update, u"benim bi pebble vardı") 123 | elif "mesaj" in r: 124 | o.sendMsg(bot, update, u"1 mesaj artı n yıllık tecrübe o") 125 | elif "off" in r: 126 | o.sendMsg(bot, update, u"off derken sanki ben kurdum cümleyi ya") 127 | elif ("grup" in r) or ("grub" in r): 128 | o.sendMsg(bot, update, u"kaanla iki kişilik özel grup kurmuşunuz diyorlar") 129 | o.sendMsg(bot, update, u"2 kişi grup olmadığından recebi de eklemişsiniz kalabalık olsun die") 130 | elif "basamak" in r: 131 | o.sendMsg(bot, update, u"Kim napcak o kadar buyuk sayiyi") 132 | elif ("apple" in r) or ("iphone" in r) or ("android" in r) or ("macbook" in r) or ("ayfon" in r): 133 | o.sendMsg(bot, update, u"apple fan boy diilim bi kere") 134 | o.sendMsg(bot, update, u"şirket verdi diyorum") 135 | o.sendMsg(bot, update, u"diğer teli servise yollucam") 136 | elif "problem" in r: 137 | o.sendMsg(bot, update, u"sorsan aynstana da öle demişlerdir kesin") 138 | elif "motor" in r: 139 | texts=[u"Tvlerde reklami var", u"Motor dedigi araba kadar ama"] 140 | o.sendMsg(bot, update, random.choice(texts)) 141 | elif "aciliyor" in r: 142 | o.sendMsg(bot, update, u"Herkes ayni anda yuklenmesin ya") 143 | elif "alir misin" in r: 144 | o.sendMsg(bot, update, u"şirket veriyosa bakarız") 145 | elif ("akademik" in r) or ("abye" in r) or ("ab" in r.split()): 146 | o.sendMsg(bot, update, u"Herkes ayni anda yuklenmesin ya") 147 | elif ("tombik" in r) or ("kilo" in r) or ("sisman" in r.split()): 148 | o.sendMsg(bot, update, u"ben hafif hissediyorum kaana göre") 149 | elif ("storage" in r) or ("disk" in r.split()) or ("gb" in r.split()): 150 | o.sendMsg(bot, update, u"aynen") 151 | o.sendMsg(bot, update, u"storage işinde para var") 152 | elif ("olimpiyat" in r) or ("mac" in r.split()) or ("kazan" in r): 153 | o.sendMsg(bot, update, u"öğlen arası eurosporta denk geldim") 154 | o.sendMsg(bot, update, u"anlık enstantaneler (bu lafı sırf ingilizcem gelişsin die kullandım :p) gösteriyorlar, baya keyifli şeyler varmış ya") 155 | elif ("ediyorum" in r.split()) or ("yaptim" in r) or ("bence" in r): 156 | o.sendMsg(bot, update, u"nyucelim meşhur bi lafını söylim sana") 157 | o.sendMsg(bot, update, u"tebriks") 158 | elif update.message.from_user["id"] == 169359665: 159 | texts = [u"Bot olan kim oguz mu felan karisiyo", u"aynı şey değil ama düşünürseniz kaan bey", u"Algi yonetimi de deniyor", u"Fotodan ayriliyor. Nyucel fotolu olan insan",u"Recebi de dovcem",u"Ona dur diyon bi sefer de recep cikiyor",u"Recebi sessize alsak",u"recebin akıllısı lazım bence",u"Sorumlusu kimse ciksin",u"bak misal recebin eksik olan kısmı yaratıcılığı",u"şu recebe gıcık olmaya başladım","tam oturtamamisin kaan", "bu olmadi bak", "oo recep geri donmus", u"ya bu deneme işlerini burada ı yapıyoruz sayın yücel?", "recep ne zaman tetikleniyo", 160 | "fotoy abakıyorsun yakışıklı olan gerçek olan ben", "baska bot ekleyebiliyoz mu", "kanaat önderi misiniz"] 161 | if random.randint(1, 10) < 5: 162 | o.sendMsg(bot, update, random.choice(texts)) 163 | elif random.randint(1, 2) == 2: 164 | bot.sendMessage(update.message.chat_id, text=".") 165 | bot.sendMessage(update.message.chat_id, text="ee") 166 | else: 167 | pass 168 | elif "oguz" in r.split() and (("nerde" in r) or ("gelmiyo" in r) or ("gelecek" in r) or ("gel" in r.split()) or ("gelir" in r.split())): 169 | o.sendMsg(bot, update, u"nası gelim cocuk var") 170 | elif ("kaan" in r.split() or ("kaaan" in r) or ("kaaaan" in r)): 171 | texts = [u"işte bi gün birilerinin kaan diceni biliyodum",u"staj vesayet başkanlığı ya kaaan", u"Sen daha iyi bilirsin bu siyasi isleri gerci sayin ozdincer", u"Kaaanla ayni ortamda olmak ikinci planda olmak demek ama neyse",u"kaaan için dert diil bunlar nasılsa hocaylan sık görüşüp kapatır açığı", u"kaanmışcasına ilgi görmek", 172 | u"bir kaan gibi özlenmek", u"bir kaan gibi seslenilmek", u"Kaan lutfen", u"Olcez gitcez su dunyadan kaan kadar kiymetimiz olmicak", ] 173 | o.sendMsg(bot, update, random.choice(texts)) 174 | elif ("+1" in r) or ("bence de" in r) or ("bencede" in r.split()): 175 | texts = [u"Arada kafamiz dagilsin flean da diyor olabilirsiniz tabi. Recep.yazsin eglenek gulek", u"Bu bilginin kaynagi var mi",u"hep bole bi bozaci siraci durumlari", u"Bak misal burada bozaci siraci lafi varmis gibi yapabiliriz"] 176 | o.sendMsg(bot, update, random.choice(texts)) 177 | elif ("akiyoruz" in r.split()) or ("geziyoz" in r.split()) or ("gezdik" in r.split()) or ("geziyoruz" in r.split()): 178 | o.sendMsg(bot, update, u"bensiz çok mutlusunuz zaten") 179 | elif ("nice yillara" in r) or ("mutlu yillar" in r) or ("iyi ki dogdun" in r): 180 | texts = [u"mutlu yıllar", u"pasta masta bişi var mı"] 181 | o.sendMsg(bot, update, random.choice(texts)) 182 | elif ("kickstarter" in r) or ("oyuncak" in r): 183 | texts = [u"benden 20 lira calisir", u"remix mini vardı"] 184 | o.sendMsg(bot, update, random.choice(texts)) 185 | elif ("gidiyoruz" in r) or ("gidelim" in r) or ("gezer" in r): 186 | o.sendMsg(bot, update, u"vaay gezin tabi ya") 187 | elif ("basvuru" in r) or ("basvurmak" in r) or ("konferans" in r) or ("konusma" in r.split()): 188 | o.sendMsg(bot, update, u"ben başvurmadım diyorum ya") 189 | elif ("yemek" in r.split()) or ("yiyoz" in r.split()) or ("iskender" in r.split()) or ("lahmacun" in r) or ("yesek" in r) or ("yemeksepeti" in r): 190 | texts = [u"ekmek kemiriyoz", 191 | u"ekmek arası yiyoz", u"işci şeyleri yiyoz"] 192 | o.sendMsg(bot, update, random.choice(texts)) 193 | elif ("bulusma" in r) or ("toplandik" in r): 194 | o.sendMsg(bot, update, u"gizlice") 195 | elif ("gizli" in r): 196 | o.sendMsg(bot, update, u"çok iyi yaa") 197 | elif ("whatsapp" in r) or ("telegram" in r): 198 | texts = [u"Telegram yerine signale mi gecseydik"] 199 | o.sendMsg(bot, update, random.choice(texts)) 200 | o.sendMsg(bot,update,u'Snowden de signali oneriyormus') 201 | elif ("oneri" in r) or ("nereye" in r): 202 | texts = [u"önerim arada eve uğrayın"] 203 | o.sendMsg(bot, update, random.choice(texts)) 204 | o.sendMsg(bot,update,u'haa gezilcek yer') 205 | o.sendMsg(bot,update,u'ben küçük yerleri seviyorum') 206 | o.sendMsg(bot,update,u'bi de koşturmaca gezmektense oturayım bi yerde modundayım sana çok uymayan bi durum bu') 207 | elif ("oguz" in r.split()) and (("selam" in r) or ("naber") in r): 208 | o.sendMsg(bot, update, u"selam genç") 209 | elif ("oguz" in r.split()) and (("naber") in r): 210 | o.sendMsg(bot, update, u"iyidir genç") 211 | elif ("oguz" in r.split()) and (("rocks") in r): 212 | o.sendMsg(bot, update, u"sağol genç") 213 | elif (("bot" in r.split()) or ("botu" in r.split()) or ("bota" in r.split()) or ("botla" in r.split()) or ("recep" in r) or ("receb" in r)): 214 | texts = [u"komplo var bence",u"grup yöneticisi olduğundandır kaaan",u"Recep insan olsa eminim mutlu olurdu",u"Kendin yaziyon ne diceni sonra ay yuzeyselsin",u"Recep dedigin yuzeysel.olur",u"taklitlerimden sakininiz", u"botu kaan mi yonetiyo?",u"ama yok arkadaş ayırt edemiyoruz biz napcaz felan diyorsanız gerçek beni ayırt etmenizi sağlayan gizli bi kod geliştirelim",u"kaliteye gelince, taklitle kalite olmaz",u"botu kaldırın karışmaz o zaman sayın yücel"] 215 | o.sendMsg(bot, update, random.choice(texts)) 216 | elif("ok" in r.split()): 217 | o.sendMsg(bot, update, u"bu ok yazma da bi çeşit bilim mi") 218 | elif(("bira" in r.split()) or ("biraya" in r.split()) or ("bomonti" in r) or ("miller" in r.split())): 219 | texts=[u"aslında bu işlerin payarla olması saçma", u"bence bira çok saçma"] 220 | o.sendMsg(bot, update, random.choice(texts)) 221 | elif(("heineken" in r) or ("hayneken" in r)): 222 | o.sendMsg(bot, update, u"o kral biradır") 223 | elif("konser" in r or "tiyatro" in r or "sinema" in r): 224 | wut = ["konser e gitmek","sinema ya gitmek","tiyatro ya gitmek"] 225 | ne = "" 226 | for _w in wut: 227 | if _w.split()[0] in r: 228 | ne = _w 229 | o.sendMsg(bot, update, u"bence %s çok saçma" % (ne)) 230 | if ne.split()[0] == "sinema": 231 | o.sendMsg(bot, update, u"ben açıp popcorn'dan izliyorum") 232 | if ne.split()[0] == "tiyatro": 233 | o.sendMsg(bot, update, u"ben açıp vimeo'dan izliyorum") 234 | if ne.split()[0] == "konser": 235 | o.sendMsg(bot, update, u"ben açıp youtube'dan izliyorum") 236 | else: 237 | pass 238 | 239 | def echoPhoto(bot, update): 240 | global o 241 | if update.message.photo: 242 | print(update.message.photo) 243 | 244 | photo_file = bot.get_file(update.message.photo[-1].file_id) 245 | photo_file.download('faces.jpg') 246 | faces = facecount('faces.jpg') 247 | if faces > 2: 248 | mesaj = str(faces) + " kişi geziyormuşsunuz biz gelmeyiz" 249 | o.sendMsg(bot, update, mesaj) 250 | 251 | def error(bot, update, error): 252 | logger.warn('Update "%s" caused error "%s"' % (update, error)) 253 | 254 | 255 | def main(): 256 | 257 | updater = Updater("key") 258 | 259 | dp = updater.dispatcher 260 | 261 | dp.add_handler(CommandHandler("start", start)) 262 | dp.add_handler(CommandHandler("help", help)) 263 | dp.add_handler(CommandHandler("konusxxx", konus)) 264 | 265 | 266 | echo_handler = MessageHandler(Filters.text, echo) 267 | photo_handler = MessageHandler(Filters.photo, echoPhoto) 268 | 269 | dp.add_handler(echo_handler) 270 | dp.add_handler(photo_handler) 271 | 272 | updater.start_polling(timeout=5) 273 | updater.idle() 274 | 275 | if __name__ == '__main__': 276 | main() 277 | 278 | --------------------------------------------------------------------------------