Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #TODO: REMOVE UNIQUE COMMENTS SCORE
- #MUST HAVE AT LEAST 20 COMMENTS TO BE ANALYZED
- import sys
- import praw
- import nltk
- import random
- import operator, time
- from nltk.corpus import stopwords
- import string
- import csv
- import threading
- r = praw.Reddit(client_id='heddO7c6fr8_ew',
- client_secret='-R8xmfsLhcc7iH5FheqxHk-xYXI',
- password='1lafot12',
- user_agent='Gathers data',
- username='GNLS03JPAP',
- disable_warning=True)
- r2 = praw.Reddit(
- client_id='QMGJWHgnQGIJNA',
- client_secret='Vq5vDuub6xb_ik8jzOsm33Wpl5M',
- password='1lafot12',
- username='doggobotbotbot',
- user_agent='Smiles all around!'
- )
- r3 = praw.Reddit(client_id='zOtvUodaAj30lA',
- client_secret='Y4nQ5MRjmKZo8Yqrzkd0IbkWzLA',
- password='inyL5r6X',
- user_agent='Final last sender',
- username='DiepModBot',
- disable_warning=True)
- r4 = praw.Reddit(client_id='wKvFAi0z-krvKg',
- client_secret='UEY7aHZI5NH13D0I3ht_IvxrTUk',
- password='1lafot12X',
- user_agent='CrossPostingBot',
- username='FactorioPrintsBOT')
- # print([x.body for x in r.redditor("totesmessenger").comments.new(limit=100)])
- # exit()
- #
- longVars = {'parentlist':None, 'breply':None, 'lkarma':None, 'nPosts':None, 'repetitive':None, 'ldist':None, 'uniqComs':None, 'spread':None, 'levels':None}
- def relca(_wanted, user, comlist):
- if _wanted == 'breply':
- longVars['breply'] = botReplyTop(user)
- elif _wanted == 'parentlist':
- print("STARTED THIS LONG ONE UGH")
- plist = []
- for pcom in comlist[:20]:
- try:
- if not pcom.is_root: plist.append(pcom.parent())
- except:
- print("ERROR")
- longVars['parentlist'] = plist
- longVars['repetitive'] = max([isRepetitive(user, comlist), isRepetitive(user, plist)])
- longVars['ldist'] = max(levDistPer(comlist), levDistPer(plist))
- print("ENDED THIS LONG ONE UGH")
- elif _wanted == 'lkarma':
- longVars['lkarma'] = len(comlist)/r.redditor(user).link_karma
- elif _wanted == 'nPosts':
- longVars['nPosts'] = fewPosts(user, len(comlist))
- elif _wanted == 'repetitive':
- pass # longVars['repetitive'] = max([isRepetitive(user, comlist), isRepetitive(user, parentlist)])
- elif _wanted == 'ldist':
- pass # longVars['ldist'] = max(levDistPer(comlist), levDistPer(parentlist))
- elif _wanted == 'uniqComs':
- longVars['uniqComs'] = uniqueComments(user, comlist)
- elif _wanted == 'spread':
- longVars['spread'] = getSpread(user, comlist)
- elif _wanted == 'levels':
- longVars['levels'] = getSameLevels(user, comlist)
- def gatherData(usr):
- start = time.time()
- for item in longVars: longVars[item] = None
- blacklisted = ['askouija', 'test', 'freekarma4you']
- clst = [x for x in r.redditor(usr).comments.new(limit=100) if x.distinguished == None and str(x.subreddit).lower() not in blacklisted]
- choices = ['breply', 'parentlist', 'lkarma', 'nPosts', 'repetitive', 'ldist', 'uniqComs', 'spread', 'levels']
- thread_list = []
- for x in choices:
- t = threading.Thread(target=relca, args=(x,usr,clst))
- t.daemon = True
- thread_list.append(t)
- for x in thread_list:
- x.start()
- for x in thread_list:
- x.join()
- fin = time.time() - start
- print(f"Done in {fin} seconds.")
- return longVars['levels'], longVars['spread'], longVars['uniqComs'], longVars['ldist'], longVars['repetitive'], longVars['breply'], longVars['parentlist'], longVars['lkarma'], longVars['nPosts'], clst
- # NEW RULE !!!! IT MUST IGNORE OTHER LANGUAGES
- # nltk.download('stopwords')
- # # I still think it would be interesting to train AI to recognize bots with data such as the name (bots names usually contain "bot"),
- # # the similarity between comments, the number of posts (generally low with bots), average time between comments, and presence of keywords
- # # ("bot", "source code", "feedback") in many comments
- # #OFFICIAL TRAITS (need at least 20 comments to analyze):
- # #1.) Name contains bot (true/false)
- # #2.) Non-standard words (i.e. not a, the, an) found in over 90% of comments (true/false) word in comment? append to dict & incrememnt num (isRepetitive)
- # #3.) Average time between comments < x (true/false)
- # #4.) Presence of keywords ("bot", "source code", "feedback", "FAQ") in over 90% of comments (true/false)
- # #5.) Number of posts <= 3 (true/false)
- # #6.) Standard deviation for average times between comments lower than X
- # #7.) Over 90% of comments are not of same variety?
- bots = sorted(list(set(['EvenWithContext_Bot', 'stabbot', 'RedditSilverRobot', 'ghostbot12', 'THANKS_OBOTMA', 'DupeBro', 'FirminoBot', 'UnknownVideosMod', 'andrethegiant', 'bot_defending_bots', 'haikubot-1911', 'interestung7', 'FriendlyDeinonychus', u'ayylmao2dongerbot-v2', u'supremeredditbot', u'topredditbot', u'shillhill666', 'MovieGuide', u'couldbeworsebot', u'botisbalanced', u'autourbanbot', u'politereminderbot', u'lol_reply_bot', u'cake_day_bot', u'anti-gif-bot', 'mentioned_Videos', u'__word_clouds__', u'unexpectfactorialbot', u'the69bot', u'copypastasearchbot', 'SandfordNeighborhood', u'thenthanmistakenoted', u'duty_bot', u'mediainformationbot', u'botwhothanksbots', u'astute_newt', 'BitcoinAllBot', 'phonebatterylevelbot', u'terriblejokebot', u'congress_bill_bot', u'trollabot', 'YesYouCould', '_youtubot_', 'Metric_Robot', u'nigelthornberry-bot', u'poshgit-', u'moviesbot', 'totesmessenger', u'grammarnazimachine2k', u'sploosh_bot', u'datafire_bot', u'thetopcommentbot', u'biglebowskibot', u'grootbot', u'jasonbournebot', u'armfixerbot', u'image_linker_bot', 'GoodBot_BadBot', 'TDTMMbot', u'linkexpanderbot', u'tubeunblockv1', u'topcommentoftheday', u'jargonbot', 'timezone_bot', u'linleylin', 'pinkguybot', u'camptownrobot', 'alotabot', u'cahbot', 'dav-bot', 'imguralbumbot', 'NotYaourtBot', 'Gyazo_Bot', u'trump_energy4', 'youtubehaikutimebot', u'ketchup_bot', u'should_have_listened', u'yourewelcome_bot', u'shrugfacebot', u'theswearbot', u'pm_me_your_bw_pics', u'texasfunfacts', u'decronym', u'alternatefactsbot', u'templatebot', u'checks_out_bot', u'healer_of_arms', u'thewallgrows', u'seriouslywhenishl3', u'gifv-bot', u'tubeunblock', u'lightningvlightening', 'thats_not_you', 'ImagesOfNetwork', 'wiki_cleanup_bot', u'alphabet_bot', 'tfwnogfbot', u'michaelscottbot', '_Definition_Bot_', 'wikitextbot', 'helperbot_', u'clueless_bot', 'OriginalPostSearcher', 'DrunkANimalFactBot', 'BankUSA', u'metric_robot', u'swearjar_bot', 'twinkiac', 'smallsubbot', u'yabbitbot', 'BundleMaker', u'_twssbot_', u'subredditmetadatabot', u'alot-of-bot', u'account_age_bot', u'makeswordcloudsagain', u'timestamp_bot', u'colorizebot', 'Upvote_Bot_3000', u'dailmail_bot', 'lawbot2016', u'thepicturedescribot', u'convertstometric', 'Capital_R_and_U_Bot', u'2018midtermelections', 'sneakpeekbot', u'-ecksdee-', u'pays_respect', u'mentioned_videos', u'gfycatofficialbot', u'payrespects-bot', u'you_get_cmv_delta', 'mortalitybot', 'could-of-bot', u'bee-bot', u'unrelatedcommentxxx', u'thatsprettygoodbot', u'smartifybot', u'prettynicebottest', 'DeceptiModerator', u'thelinkfixerbot', '__impearlfectron__', 'youtubefactsbot', u'no_context_bot', 'mirrorninja2', 'thank_mr_skeltal_bot', 'joebidenbot', 'botpaperscissors', 'amazedbot', 'jacksfilmsbot', 'have_bot', 'teleportsbehindu', 'Agrees_withyou', 'ludabot'])))
- allInfo = dict()
- # normalusers = list(set(['KolbStomp', 'Insxnity', 'Leben_', 'jgoodma3', 'glenbot', 'Izlandi', 'Pomnom', 'AuhsojSivart', 'NateTheGreat14', 'KOWguy', '13374L', 'youlostthewarwehrs', 'mjj1492', 'SundayNightExcursion', 'thespieler11', 'poisonminex555', 'BotsByLiam', 'BelowDecksWatch', 'The-Human-Caterpie', 'audobot', 'ShitpostBot4700', 'confirmSuspicions', 'Danny_Dorito1' ,'ClearlyCoder', 'g051051', 'CastleCorp', 'antiproton', 'Dynamiklol', 'BritishEnglishPolice', 'Adilliosz', 'Slow_motion_riot', 'DroidAG', 'tutelarsword', 'F1zzzzzzzzz', 'lizard81288', 'abe699', 'omnear', 'oVuhqz-', 'ThatsMyHoverboard', 'Jdude1', 'Maxrdt', '1tepa1', 'jboundfly', 'dimidunnit', 'Jeepwave13', 'rockiesfan4ever', 'theLAZYmd', '-en-', 'ShiningConcepts', 'AskWomen_SS', 'I_POO_ON_GOATS', 'badcompanygg', 'Cult7Choir', 'Zwierenga', 'A_FluteBoy', 'raijuJ', 'Eadwine_', 'deathviahype', 'vikmaychib', 'filij', 'JakeBurnsRed', 'Sevenvolts', 'Persbrandt', 'Yonaimy', 'black-trash-man', 'imashtro', 'PowerfullySimple', 'ergatory', 'SentineI', 'brandonhaas81', 'Cremacious', 'lazarini', 'noxnoctum', 'White_Null', 'lemonfur', 'Kramgunderson', 'twintowersrubble', 'LeProgressier', 'cork_dork', 'Paanduhb', 'UrgotOniichan', '_Hnnng_', 'DeetzLV', 'Vriess', 'angryclouds1', 'Madaman333', 'Joshgill123', '40splishsplash', 'davetenhave', 'Punisher1942', 'RealAdonis2', 'RoseM20', 'botd44', 'KellyfromLeedsUK', 'Officer_Lockstock95', 'djda9l', 'IOUAndSometimesWhy', 'almondbuttertoast', 'anecdot11', 'Mukhasim', 'Elock21', 'otherbard', 'RayceC', 'St_Schaf', 'Bshsjaksnsbshajakaks', 'poptart2nd', 'MethMouthMary', 'formeraide', 'Arksaw', 'nextgamegod', 'anotherdrink', 'AnotherProGamer', 'PurpleScorpio', 'aventedor', 'aeonicgnosis', 'wannabecameraguy', 'SmallUnitTaticsPlea', 'FoxieKat', 'Voltairinede', 'just_a_talking_head', 'therecordcorrected', 'PolarBearIcePop', 'audobot', 'The_blind_swordsman', 'num1eraser', 'SwallowRP3', 'GenAnton', 'wilderfulford', 'Olav_Grey', 'RonnieJamesDevo', 'NuggetBlazers', 'Ikniow', 'notheusernameiwanted', 'Chesterbb', 'SaintSayonara', 'RubyIsRight_', 'Skulldaeron', '_edge_case', 'jusbrowsin', 'DeadManFeeding', 'WhiteNoiseWhiteNoise', 'meowpass', 'stockingcummer', 'NovaInitia', 'alpacagnome', 'Killthebilly', 'cantkeepdickinpants', 'BlondishYataghan', 'stamatefilip', 'geldof_is_a_pox_too', 'Cowjoker', 'Gamer3427', 'Freeatlast112015', '2manyredditstalkers', 'ViGo76']))
- normalusers = sorted(list(set(['-en-', 'KatnissBot', 'i-make-robots', 'Zwierenga', 'RubyIsRight_', 'DeetzLV', 'lemonfur', 'JakeBurnsRed', 'lizard81288', 'jusbrowsin', 'SwallowRP3', 'davetenhave', 'Vriess', 'angryclouds1', 'Arksaw', 'imashtro', 'White_Null', 'DeadManFeeding', 'antiproton', 'brandonhaas81', 'RonnieJamesDevo', 'Jeepwave13', '_edge_case', 'jboundfly', 'KolbStomp', 'cantkeepdickinpants', 'num1eraser', 'Voltairinede', 'mjj1492', 'Officer_Lockstock95', 'BlondishYataghan', 'therecordcorrected', 'AskWomen_SS', 'g051051', 'AnotherProGamer', 'oVuhqz-', 'ViGo76', 'Sevenvolts', 'Paanduhb', 'Adilliosz', 'RayceC', 'KellyfromLeedsUK', 'djda9l', 'NovaInitia', 'Eadwine_', 'GenAnton', 'CastleCorp', 'Kramgunderson', 'Persbrandt', 'LeProgressier', 'Bshsjaksnsbshajakaks', 'thespieler11', 'botd44', 'abe699', 'Skulldaeron', 'Ikniow', '1tepa1', 'I_POO_ON_GOATS', 'poptart2nd', 'aventedor', 'Killthebilly', 'Elock21', 'SentineI', 'poisonminex555', 'Danny_Dorito1', 'dimidunnit', 'Madaman333', 'tutelarsword', 'aeonicgnosis', 'alpacagnome', 'RealAdonis2', 'Freeatlast112015', 'wilderfulford', 'Insxnity', 'vikmaychib', 'youlostthewarwehrs', 'The-Human-Caterpie', 'anecdot11', 'WhiteNoiseWhiteNoise', 'audobot', 'Punisher1942', 'lazarini', 'ShitpostBot4700', 'A_FluteBoy', 'AuhsojSivart', 'anotherdrink', 'PolarBearIcePop', 'Olav_Grey', 'Cowjoker', 'confirmSuspicions', 'twintowersrubble', 'Pomnom', 'nextgamegod', 'notheusernameiwanted', 'rockiesfan4ever', 'Mukhasim', 'Maxrdt', 'glenbot', '_Hnnng_', 'Leben_', 'DroidAG', 'UrgotOniichan', 'Joshgill123', 'BelowDecksWatch', 'ThatsMyHoverboard', 'KOWguy', 'ShiningConcepts', 'MethMouthMary', 'Slow_motion_riot', 'raijuJ', 'SundayNightExcursion', 'NuggetBlazers', 'jgoodma3', '13374L', 'omnear', 'Chesterbb', 'noxnoctum', '2manyredditstalkers', 'just_a_talking_head', 'RoseM20', 'PurpleScorpio', 'ergatory', 'otherbard', 'Cremacious', 'F1zzzzzzzzz', 'NateTheGreat14', 'The_blind_swordsman', 'Cult7Choir', 'almondbuttertoast', 'stamatefilip', 'Izlandi', 'SaintSayonara', 'St_Schaf', 'deathviahype', 'Jdude1', 'filij', 'Dynamiklol', '40splishsplash', 'wannabecameraguy', 'black-trash-man', 'geldof_is_a_pox_too', 'badcompanygg', 'stockingcummer', 'SmallUnitTaticsPlea', 'BritishEnglishPolice', 'BotsByLiam', 'Yonaimy', 'Gamer3427', 'PowerfullySimple', 'meowpass', 'IOUAndSometimesWhy', 'theLAZYmd', 'formeraide', 'cork_dork', 'jedberg', 'ketralnis', 'davean', 'noswad4', 'shadydentist', 'helm', 'Inri137', 'Aniridia', 'FlaviusValerius', 'Cliff254', 'bluecoconut', 'leaffall', 'nallen', 'kajarago', 'ImNotJesus', 'BugeyeContinuum', 'Surf_Science', 'MRIson', 'Silpion', 'iorgfeflkd', 'Jobediah', 'medstudent22', 'NonNonHeinous', 'Dr_Peach', 'paradoxical_reaction', 'jeargle', 'Soul_Rage', 'squidboots', 'Astrokiwi', 'Subgranules', 'Robo-Connery', 'waywardminer', 'troixetoiles', 'doggy_styles', 'ForgottenPhoenix', 'adoarns', 'Grep2grok', 'chrisbaird', 'DijonPepperberry', 'Former_FA', 'bellcrank', 'cdcox', 'xrelaht', 'Golden-Death', 'BunBun002', 'blufox', 'EagleFalconn', 'firedrops', 'FinalDoom', 'shadow1515', 'evrae', 'Wrathchilde', 'shalalam', 'Kursed_Valeth', 'S_D_B', 'jlozier', 'soccernamlak', 'brtw', 'crappysurfer', 'fhi08', 'sinenox', 'diazona', 'PapaMancer', 'LuklearFusion', 'organiker', 'Mizar83', 'Tetrazene', 'coldfrontin', 'HippocriteOfCos', 'futrawo', 'Neurokeen', 'LeChatelier', 'thearn4', 'XIllusions', 'vaderscoming', 'mattc286mod', 'feedmahfish', 'CyaNBlu3', 'glr123', 'Neko-sama', 'bass_voyeur', 'tindolos', 'MIBPJ', 'Scienceonyourface', 'cerlynn', 'melikeyguppy', 'ReginaldIII', 'Bioman35353', 'tvw', 'forest_fire', 'mmtrebuchet', 'ihateirony', 'nousernamesavailable', 'Justiceforallhobos', 'flutterfly28', 'FluorescentBug', 'medgno', 'just_shaun', 'Histidine', 'TheOriginalShummy', 'propargyl', '99trumpets', 'mobilehypo', 'IceBean', 'bheklilr', 'CompMolNeuro', 'Ariocabron', 'AGreatWind', 'dazosan', 'Banach-Tarski', 'Dolphlungegrin', 'ablindmansees', 'dinoparty', 'Aerothermal', 'BigSaggyWeenis', 'chrisms150', 'billnyesbowties', 'JoeCoder', 'ljvillanueva', 'kelvindegrees', 'Laughing_Chipmunk', 'MoreBeansAndRice', 'hobbycollector', 'ktbug1987', 'micromonas', 'msgbonehead', 'lightamanonfire', 'Kegnaught', 'bethisimo', 'danc1005', 'bopplegurp', 'bornNraisedNfrisco', 'avboden', 'SilverSnakes88', 'rhoffman12', 'Pandamonium888', 'SDH500', 'sasmon', 'Oogaman00', 'tigertealc', 'nucl_klaus', 'susscrofa', 'Yankee_Gunner', 'Rodbourn', 'nocaph', 'themeaningofhaste', 'protonbeam', 'TrevelyanISU', 'omnilynx', 'Providang', 'perpetualgroove', 'Originholder', 'PKThundr7', 'waterpew', 'Stangmeister', 'Tiyrava', 'panzerliger', 'ProfessorLional', 'Fishing-Bear', 'aznsk8s87', 'Fenring', 'RadicalEucalyptus', 'ratwhowouldbeking', 'manusmad', 'DrGar', 'xartemisx', 'Izawwlgood', 'heb0', 'Quoonit', 'GingerAnthropologist', 'jalees', 'Hindsight_DJ', 'TimeGrownOld', 'QComputers', 'DrRonnieC', 'bigleaguechyut', 'neubroscience', 'masayaanglibre', 'cge', 'AJistheGreatest', 'MentalMarketer', 'mdbrooks', 'dailyskeptic', 'whiteknight521', 'RooMagoo', 'NotoriousSIG', 'lysozymes', 'squarlox', 'hebug', 'thgibbs', 'cefpodoxime', 'ntlaxboy', 'ididnoteatyourcat', 'thatguydr', 'jad2121', 'Camerongilly', 'wighty', 'ahoff', 'onacloverifalive', 'SirT6', 'zlevine', 'WolfDoc', 'laziefred', 'MattTheGr8', 'reciprocalhokie', 'softmatter', 'krom0025', 'mjmed', 'Solfire', 'Psionx0', 'StonedPhysicist', 'risingyeast', 'biledemon85', 'tupper', 'twentyafterfour', 'unfallible', 'Jjameyson', 'club_med', 'ironicname', '_sword', 'ohsnapitsnathan', 'nero_sable', 'amaurer3210', 'Donjuanme', 'Clever-Username789', 'zell298', 'electrostaticrain', 'funknjam', 'naturenet', 'steyr911', 'Ronmeista', 'shlam16', 'karlrocks23', 'FenixAK', 'lugnut92', 'Magick-NL', 'coreymg', 'bradleyvoytek', 'k4ylr', 'PapaNachos', 'trebuday', 'ITwitchToo', 'grandweapon', 'Lancaster1983', 'angleglj', 'osprey413', 'Tweeeked', 'kaeli42', 'footcreamfin', 'elfofdoriath9', 'itsalldark', 'Frozenshades', 'theschwaa', 'DemonKingWart', 'Deightine', 'r_plantae', 'myrandomone', 'ar312', 'ecb29', 'WearMoreHats', 'AeroLightning', 'BearcatChemist', 'julio1990', 'punkgeek', 'persiansown', 'SpookyShyGhosty', 'DJBunBun', 'Tigeris', 'McFlare92', 'myersjustinc', 'mdz92', 'nastyasty', 'chulaire', 'MarlDaeSu', 'frankchn', 'BSinZoology_LOL', 'harkatmuld', 'carmacae', 'Cnp113', 'FeetSlashBirds', 'gimbb14', 'entrancedzeda', 'Bffls', 'Draco12333', 'korkow', 'kcripe', 'xhlmzr', 'gohanssb', 'txcotton', 'First_Child', 'yanminor', 'GnomeCzar', 'Todd_The_Sailor', 'cjbrigol', 'Vorticity', 'rigormorty', 'urides', 'FiringMechanism', 'reccos7', 'FizzedInMyPantz', 'uhkhu', 'der1n1t1ator', 'Fenzik', 'Belteshassar', 'ammzi', 'RectalTourist', 'Powgow', 'footiebuns', 'marleythebeagle', 'ttotheodd', 'ricecooking', 'saad93', 'idm04', 'ursusoso', 'Heartsong_', 'TheMuslinCrow', 'FogItNozzel', 'pjwally', 'tioguerra', 'KalterTod', 'likenedthus', 'lambonius', 'pyroaxis', 'Viros', 'rubicon_crossed', 'Meatballosaurus', 'Tenaciousgreen', 'st_aldems', '_Rocha', 'askantik', 'sopunny', 'the_mullet_fondler', 'wil3', '1nVu', 'IcarusFalls15', 'KrishP93', 'DrDaniRowles', 'Lihadrix', 'IAmVeryStupid', 'The_Benthic_Zone', 'EntropyXe', 'OldBoltonian', 'morgenzi', 'Sublyminality', 'olorwen', 'kevjohnson', 'GodoBird', 'Bagsdontgoinpipes', 'amenadiel', 'aliertugr', 'LazySamurai', 'godspeed413', 'WalkInLove', '0x12is18', 'Vaines', 'arwidcool', 'dr_stogie', 'gimpwiz', 'hennirl', 'whyamiupthislate', 'that_engineer', 'corner_case', 'cardboard_dinosaur', 'Podo13', 'occamsshavecream', 'Pennyw1se', 'p1percub', 'DJHellduck', 'wojx', 'jsto1886', 'kroxywuff', 'vini710', 'TheLabMix', 'RaoOfPhysics', 'Flazer', 'sup3r_hero', 'physicswizard', 'Mister_Bloodvessel', 'breakfast144', 'Give_Me_Cash', 'TyTAF', 'Milwo', 'compaqdrew', 'Amp4All', 'JHappyface', 'chemnerd123', 'KMKtwo-four', 'moistpantyhose', 'K04PB2B', 'Pluckerpluck', 'kerovon', 'Mercarcher', 'Algee', 'pkbowen', 'CampBenCh', 'ecopoesis', 'Finie', 'SirBaconPants', 'pants2422', 'Maxim_Makukov', 'Vic_n_Ven', 'Strife0322', 'frostickle', 'puckishfiend', 'danisnotfunny', 'Nerobus', 'jaldmn', 'LOOKITSADAM', 'QuantumFX', 'captainjon', 'puterTDI', 'sewerbass', 'fsmpastafarian', 'belvedere9', 'coolkid1717', 'shadowwork', 'Veruka_Salt', 'sherkaner', 'alok99', 'rasputine', 'slowlyslipping', 'Cletus_awreetus', 'phobiac', 'thisdude415', 'Pilipili', 'paradoc', 'Kaunigmna', 'Chawp', 'humblerodent', 'bijibijmak', 'azendel', 'ffiarpg', 'lacrosse1991', 'lasserith', 'Eltargrim', 'RayDeemer', 'groshh', 'perfekt_disguize', 'd4rch0n', 'price0416', 'icecreambones', 'Sadnot', 'PurplePotamus', 'BizCaus', 'TehFono', 'ShakesJr', 'galaxxus', 'purpletraitor69', '00malibubarbie00', 'downvote_vortex', 'lheritier1789', 'canekicker', 'Not_that_kind_of_DR', 'friendsanemones', 'allanbrokeit', 'fatfreemilkman', 'omega2four', 'Cobrajr', 'Ashewyn', 'pwr22', 'Ratmonger', 'Supersly1992', 'medigun', 'strongbob25', 'FoolsErrend', 'olhmr', 'crawlingfasta', 'marchaeus', 'Phrenchie', 'DemMangos', 'da6id', 'AdrianBlake', 'Athaza', 'The_Dark_Kniggit', 'drpeterfoster', 'owiseone23', 'invirtibrite', 'odsquad64', 'DanielSank', 'breathingcarbon', 'TheObservantPheasant', 'rdiaz022', 'swag_train', 'ZombieNurse', 'mziff', 'MotherProfessor', '3mpir3', 'AllHailScience', 'bea_bear', '_kb', 'Apollo506', 'ProfessorJNFrink', 'DrSta', 'aLightBraise', 'Ape1', 'limeflavoured', 'Evelyght', 'muz911', 'Slimy_turtles', 'ima_mo', 'darkPrince010', 'Frobeniu5', 'Goatsarebest', 'SilverSlothmaster', 'j_mcm', 'ZeroTo325', 'nj47', 'brandonjs', 'MoltenSlag', 'Skajadeh', 'shibbles_', 'Cicerho', 'pinksultana', 'goodtincture', 'neuro_neurd', 'girlborealis', 'WhatTheHorcrux', 'Ax3m4n', 'beachdriving', 'apostate_of_Poincare', 'indigoC', 'YouHadItComing', 'Scruffs', 'childpsych', 'zian', 'ComputerPlayerOne', 'shorterthantherest', 'Shion314', 'vstreva', 'Iron_Kosmonaut', 'woodsbookswater', 'gammadeltat', 'ma6ic', 'ACDCrocks14', 'Comoquit', 'BlackManonFIRE', 'Callif', 'connormxy', 'M1st3rYuk', 'DrDueSs', 'Paranemec', 'RealityApologist', 'mutatron', 'Fighting_EBV', 'Aarcc', 'Artymess', 'bonez656', 'Justtryme90', 'MartyMcSmartyPants', 'PlantedDerp', 'biocuriousgeorgie', 'Ptitlaby', 'saviourman', 'ncarducci', 'Gendibal', 'PM_ME_YOUR_DRUNK_PIC', 'LordQuagga', 'sifav6', 'Halloysite', 'dbarbera', 'Doomhammer458', 'Ceptyr', 'marsyred', 'violetdragonfly', 'Dennis_Langley', 'Typrix', 'thatisgrossman', 'AnonSocialist', 'am_i_wrong_dude', 'cronbachs_beta', 'engineerme9', 'PeruvianHeadshrinker', 'quickclickz', 'xtalicious', 'WallCatticus', 'matthew_green', 'ThePr1march', 'ookwrd', 'lisasaurusRex', 'raven12456', 'shenuhcide', 'poltyy', '_disguy', 'Optimoprimo', 'lablizard', 'rutiene', 'PHealthy', 'WaitingToTakeYouAway', 'bupps5', 'texaspsychosis', 'cortex0', 'bcain204', '96385', 'flyawaytoday', 'mherr77m', 'BeerDuh', 'Zarrah', 'dadrummond', 'skrenename4147', 'calling_you_dude', 'xmasjacksonflaxon', 'GhostofJeffGoldblum', 'MDmondays', 'JerkfaceMcGee', 'falstaf', 'nygreenguy', 'quattro', 'Entity420', 'AsAChemicalEngineer', 'catsofnewyork', 'GodlessScientist', 'Kativla', 'dukec', 'RespekKnuckles', 'shwag945', 'tendorphin', 'EpicTRC', 'supernova1992', 'Simkin-PhD', 'Farseli', 'rileyluck', 'Nodonn226', 'ABQPHvet', 'guttata', 'MrSquig', 'GentlemanGallimaufry', 'KakarotMaag', 'limbicslush', 'kaztrator', 'mishellular', 'gingerjojo', 'thelordplatypus', 'Quant_Liz_Lemon', 'anlumo', 'nedlinin', 'pensivebadger', 'slingbladerunner', 'dildormastiff', 'The21stPotato', 'MrPoppersPuffins', 'brom333', 'gm2', 'kblaney', 'toolatealreadyfapped', 'oneguy2008', 'gameoftomes', 'FridaG', 'clrokr', 'pasimako', 'joevector', 'BurkeyAcademy', 'helluvascientist', 'rs039', 'jimi_sanchez', 'forthewolfx6', 'IamPhoReal', 'kyew', 'catman2021', 'notinsanescientist', 'jlynnrd', 'Jmadman311', 'drjonesenberg', 'zjs', 'jasondossett', 'shiruken', 'uke_cupcake_cwon', 'SquirrelNoises', 'Strayphoenix6', 'funkiknight', 'Pavlovs_Mutt', 'shadowfu', 'WhereAmIGoingFrom', 'clavulanate', 'counters', 'Ruddeck', 'pcinvivo', 'xSacredLotus', 'boxkat', 'raywinray', 'niveknus', 'dsh1234', 'mrmojorisingi', 'subtly_irritated', 'nukedetectorCA94612', 'RhonaStuart', 'runlifteatsleep', 'duncanstibs', 'past_is_future', 'Anzerou', 'sckulp', 'doseid', 'hadesflames', 'trainwreck42', 'e_swartz', 'tlcooper2', 'TehSquid', 'Digging_For_Ostrich', '_Rooster_', 'THHUXLEY', 'NeedMoreCaffeine', 'Devidose', 'jjberg2', 'GTxCiviL', 'wickedsweetcake', 'will592', 'TheShawnAvery', 'asmi_kyle', 'jessegammons', 'klmarshall', 'rtphokie', 'Forsaken_Bulge', 'Genmutant', 'crustymech', 'cos', 'ttallwr', 'shlotchky', 'Hindu_Wardrobe', 'Kenley', 'paxmontis', 'KakoiKagakusha', 'bigmansam45', 'rseasmith', 'StringOfLights', 'honkeycorn', 'FatRatSatCatBat', 'pettervikman', 'SipTime', 'freevortex', 'JaredOnly', 'gupe', 'DragonFive', 'Yuki-no-Kage', 'ryanjgill2', 'DischordN8', 'jeffykins', 'trickyspaniard', 'sterben', 'StephanLewandowsky', 'Multigrain9867', 'femanonette', 'beastdoctor', 'mazca', 'juicebox_', 'ccoffrin', 'Twitch89', 'womanwithbrownhair', '1254', 'adenovato', 'sexybeastscotty', 'awinnerneedsawand', 'lovetoujours', 'Wiggly_Sparklez', 'acl5d', 'practically_sci', 'warwick607', 'hubris105', 'daboose', 'canoodle_me', 'ElGeek', 'WELLinTHIShouse', 'MockDeath', 'carljoseph', 'Beaun', 'rifenbug', 'TheSeventhCircle', 'kmarple1', 'jayco', 'godsenfrik', 'Alantha', 'hutima', 'Dannei', 'milias3303', 'bravo_bravos', 'Dr_T_Brucei', 'lucaxx85', 'rhiever', 'otasyn', 'B1ack0mega', 'SmiTe1988', 'michiexile', 'UnidanX', 'bongoherbert', 'invisiblewardog', 'drktmplr12', 'Mbando', 'Leena52', 'eigenvectorseven', 'Qwertysapiens', 'Zeliss', 'karptonite', 'neurobeegirl', 'willandbeyond', 'Kai_', 'tigerscomeatnight', 'nubcakefactoryy', 'Ace-of-Spades88', 'StigDoesntFart', 'CptSnowcone', 'kaleidoscopic_prism', 'RexScientiarum', 'kma181', 'aayush387', 'apjashley1', 'gingerlovingcat', 'Tripudelops', 'plorraine', 'pessimistic_chemist', 'qtx', 'askLubich', 'Glaselar', 'superhelical', 'Nostalgia00', 'thenaterator', 'Phobos1393', 'Corruptionss', 'USKira', 'IronMaiden0329', 'iRyanLV', 'jsawler', 'NanoChemist', 'ProfessorSoAndSo', 'jpgray', 'glr_mod', 'life-finds-a-way', 'kelminak', 'Carl_Sagan21', 'whatthefat', 'kamronb', 'subito_lucres', 'monkeydave', 'smbtuckma', 'flagrantfoul', 'avara88', 'fireking99', 'uber_poutine', 'BiologyIsHot', 'RedLeg13', 'tlubz', 'jolindbe', 'ksarma', 'Thats___Interesting', 'chad_brochill69', 'bob8436', 'VesperJDR', 'Grabthelifeyouwant', 'basilect', 'wljay', 'TheSuperSax', 'DrunkPanda', 'kfreed12', 'drsjsmith', 'ghjm', 'AladeenAlWadiya', 'wadss', 'BlazingB', 'Snowtsuku', 'sahelanthrope', 'duhnuhnuh_duhnuhnuh', 'thermos26', 'GaMe_PTY', 'mixedmath', 'Rather_Unfortunate', 'Rollow', 'erlendig', 'jadentearz', 'emsmale', 'learningtheflowers', 'TheSlaughterrr', 'DrShrime', 'fubar', 'Vogtster', 'bacardi_gold', 'jswhitten', 'IAmRadish', 'heidavey', 'midnyghtchilde', 'tonusbonus', 'AllButImpossible', 'lawdy_lawd', 'Lunares', 'valiantw', 'njggatron', 'IonicPenguin', 'Real_MikeCleary', 'firststop__svalbard', 'Shrinking-Nox', 'filolifts', 'DrIblis', 'DiscursiveMind', 'AltoidNerd', 'fantalemon', 'liamkun', 'Scrennscrandley', 'qwop271828', 'NicoleASUstudent', 'chriscpritchard', 'Jonstrocity', 'Kaell311', 'cleverlikeme', 'ponchoskunk420', 'equationsofmotion', 'ms_g_tx', 'FrothyWhenAgitated', 'Pergamum_', 'SCAtomika', 'Jv01', 'roatit', 'Heuronian', 'ukez', 'shiftt', 'kimonoko', 'LiveMaI', 'jaythespacehound', 'cjsed', 'David_Barros', 'kriegeson', 'elvin_estrada', 'bourbonandcoffee', '_chrisc_', 'Naturean', 'HeyLookJollyRanchers', 'MCsmalldick12', 'biohazmatt', 'Fear_ltself', 'Doowstados', 'DoggedlyDauntless', 'ndahlwilawina', 'Adeelinator', 'SergejButkovic', 'AlNejati', 'WRCousCous', 'theradek123', 'Chupacabrasaurus', 'prophet1022', 'msymeonides', 'jono199', 'PikminGod', '-pba', 'CU_Beaux', 'yutripn', 'DrCBob', 'donuts500', 'FarazR90', 'Royness', 'katydid15', 'VictorVenema', 'chamolibri', 'mofosyne', 'VeryLittle', 'PossumKing', 'natematias', 'cut_chemist_', 'soupvector', 'CD11cCD103', 'Icayna', 'DavidAJoyner', 'DNAhelicase', 'nate', 'Lewin4ever', 'EarwaxUK', 'DontReinventAspirin', 'CynicKitten', 'GrizzlyRhyme', 'immasciencit', 'AudiWanKenobi', 'm1l4droid', 'quinobequin', 'teekling', 'televoxy', 'thejacob5', 'EdaciousE', 'Sugarpeas', 'ecooevo', 'colditzjb', 'RogueJD', 'ThomasMarkov', 'NV_Geo', 'Jimbo762au', 'GodAImighty', 'Im_A_Ginger', 'BlackTieButtPlug', 'rustypete89', 'OSUCOWBOY1129', 'jamimmunology', 'MademoiselleEcarlate', 'PlanetGoneCyclingOn', 'swimfast58', 'JenniferColeRhuk', 'orangejulius', 'Forgott3n', 'herman3thousand', 'vinnyt16', 'FataOne', 'nosliwhtes', 'halfshellheroes', 'ncahill', 'EconMan', 'Jb191', 'FullHavoc', 'jetbent', 'TwinTipZ', 'fuzzymidget', 'LokiAir', 'rslake', 'VvermiciousknidD', 'Ltol', 'KrAzyDrummer', 'BecauseChemistry', 'evilvee', 'Elhehir', 'davedude82', 'Bull3t_Th3ory', 'Iamamanlymanlyman', 'tilman2015', 'crudent', 'piadista', 'Micro_M', 'MrRichyy', 'khaeen', 'papasmurf61', 'nyrangers30', 'polymorphicprism', 'with2as', 'gmbrown21', 'LeviathanLily', 'EpicScience', 'SomberForest', 'III-Nitrides', 'dr_ajc', 'OSUBrit', 'glasscasket', 'fabulasator', 'Andromedonian', 'askja', 'arsenalca', 'AmateurHero', 'SFRG', 'Rhodopsin_Less_Taken', 'cc_cyanotephra', 'Austion66', 'AlesioRFM', 'zach_255', 'AlexWIWA', 'Ksco', 'fokaimori', 'HeraticAssassin', 'curiousbuddha', 'tlee275', 'andumar', 'LoveOfProfit', 'Trolske', 'NikolaTwain', 'Nepluton', 'Lyucit', 'satan_loves_us', 'Bollaa', 'D-o-Double-B-s', 'blot101', 'funkmatician2014', 'Misoura', 'SummerInPhilly', 'jellymanisme', 'WKCLC', 't3hasiangod', 'gonefishn', 'tizzy62', 'mpcfuller', 'Sillocan', 'sadpeanut', 'biopsych', 'Syn-Xerro', 'jamnjustin', 'awrf', 'Sjonesej0', 'fasterbeef', 'ReMiiX', 'gotang', 'JupiterXX', 'BeSkepticalOfAll', 'qgomega', 'driscoll97', 'mattv8', 'Grantangry', 'halborn', 'kidcodiwise', 'DonQuesoDeLaVega', 'chendamoni', 'riptide13', 'QuantumKittydynamics', 'Nheea', 'TelemarketingEnigma', 'DalisCar', 'S0K4R', 'ohbyabbyjoy', 'synbiologist', 'Lord_Noble', 'medguyds', 'Shankovich', 'DuckHuntHotDog', 'Sexysilvia', 'ktm9292', 'green_scream', 'peterwc', 'RuhRuhRogerThat', 'imVINCE', 'greenging', 'DaKelster', 'simonsky', 'dtmtl', 'hilldr', 'MattEOates', 'rockjoc', 'Civ4ever', 'abloomquist', 'FriendlyYak', 'USModerate', 'BritishEnglishPolice', 'MilkyWitness', 'Dillonmedlock', 'roderikbraganca', 'silverpony24', 'cardmage7', 'Arthur233', 'danesgod', 'sierrafourteen', 'Eitoku_K', 'nathancurtis11', 'Grebuman', 'audma', 'fiafia127', 'ccesare', 'Ableo', 'mgrau', 'denzil_correa', 'StellaAthena', 'charmgoggles', 'superaub', 'raulf2012', 'sureshkari', 'oloaptacis', 'durpfursh', 'NylonStark', 'AnakinGabriel', 'aoifesuz', 'Nishymaniac', 'Badd_', 'artfuldawdg3r', 'morningsunbeer', 'GregoryEAllen', 'jayhigher', 'TheStevenZubinator', 'thisisallme', 'MagicWhistleca', 'kosanovskiy', 'jackalope3000', 'saluff', 'tyquig', 'skte1grt', 'VictorianPornStar', 'kougabro', 'Kopuk_Ucurtma', 'rootedVette', 'jay462', 'michaelrw10', 'DrZack', 'Young_Zaphod', 'Dizzy_Science', 'MrMango786', 'gobakhan', 'dmart030', 'english06', 'discofreak', 'divvyflax', 'mmm_toasty', 'Thermoelectric', 'viking_', 'WellAsk', 'TheHye', 'edcba54321', 'mandragara', 'SableProvidence', '_beeb', 'BokononI9', 'Willmono7', 'Hooch180', 'danthedad', 'IrishAmericanWhiskey', 'HerbziKal', 'Flat_prior', 'Poxdoc', 'vkells', 'mvea', 'Beake', 'I_am_Searching', 'twenafeesh', 'qjornt', 'jonathon481', 'daob_stats', 'Cqcmneem', 'prestatiedruk', 'moderatelyinspired', 'dorkula02', 'testdethomas', 'tragicmonsters', '_whatevs_', 'takes_joke_literally', 'edwinksl', 'slowandsteadylearner', 'squidonthebass', 'HeinzHeinzensen', 'petite-vest', 'amicitas', 'CaffeineViking', 'spacemoses', 'Flikmybik', 'Infectious_Pen', 'rainatur-rainehtion', 'bblum', 'wolfman29', 'Yawnn', 'mcorah', 'Penultima', 'nedolya', 'chweris', 'Destructopuppy', 'imobile_walrus', 'jbspivey', 'jvsanchez', 'aluin13', 'Music_Lady', 'Belsyre', 'JordanLewisBurke', 'spud1988', 'mermaidmel16', 'TheSilverSoap', 'kshelley', 'Heelincal', 'I_AM_A_SMURF', 'danneh02', 'waldoze', 'PrehistoricAcademic', 'jeriatrik', 'The_Real_Roberts', 'lumphie', 'priceless277', 'DroopyTitz', 'HNSUSN', 'karantza', 'MobRould', 'millenial_simulacra', 'Apex_Armadillo', 'ADD_MORE_BOOSTERS', 'hinomarucurrydisc', 'razoman', 'cg1bs', 'almightybob1', 'Communist0', 'plasTUSK', 'Unlikely_Explanation', 'jama211', 'orangesodasmurf', 'Lotete', 'Thedarkfly', 'OyeBenny', 'peacelovesquirrels', 'thecomputerscientist', 'imaBCBAima', 'AngeloUMD', 'Xeronate', 'Etroyer', 'penguinberg', 'Alionroars', 'Phenomenem', 'Rompalamp', 'LifesMellow', 'greenbeattle', 'contraman7', 'WontChupBru', 'raham135', 'Angryferret', 'binkpits', 'ncFoCo', 'dkadavarath', 'BlamBitchPudding', 'sainsburys', 'SametTheTurk', 'Karakanov', 'Prime-Ideal', 'Pegaman', 'dan-jer-ous', 'PvsNP_ZA', 'Ruq', 'd3v_nu11', 'dendiz', 'imlink1', 'omerc10696', 'Pituophis', 'Satanical_Mechanical', 'life_b4_death', 'jkotwa93', 'chrisamiller', 'linuxrogue', 'Russellonfire', 'ChaRules', 'ItmaybeADD', 'ThatNeonZebraAgain', 'joshuacampbell', 'ozenmacher', 'imnottechsupport', 'irishfan3124', 'OneAviatrix', 'bcpolander', 'BadMedStudent', 'gmwag73', 'th3sc13nt1st', 'ferngu11y', 'dreday8', 'DontchaKnoMeow', 'WackyWavyTube', 'Gehwartzen', 'Torandi', 'vestigialstructures', 'Mattyice128', 'Prof--G', 'Co60', 'At_least_im_Bacon', 'gu_doc', 'priyology', 'MelodicMuppet', 'Hirudinae', 'ppkhoa', 'Reallyhotshowers', 'TrueDylan', 'RomeRawr', 'boiler725', 'Weaselpanties', 'bodaciousbum', 'Evictus', 'DrWYSIWYG', 'Kvothealar', 'VallenderLabs', 'xeiss', 'Et_in_America_ego', 'pandasgorawr', 'Loudnthumpy', 'alwaystooupbeat', 'Kerwin15', 'ga_ramirez', '-fry-', 'pyrotechnicist', 'FillsYourNiche', 'mccavity', 'goodgeology', 'jramification', 'engine__Ear', 'ickynickie', 'ausernametoforget', 'bearxfoo', 'koalalegend', 'he_did_the_math', 'timyt01', 'snikks', 'sciteach44', 'Virian', 'pedroivo000', 'Razor1834', 'LarysaFabok', 'pseudocubic', 'Jake_Science', 'mso888', 'jddbeyondthesky', 'The_Old_Wise_One', 'haako40', 'KAW641', 'Hanmin147', 'optimalg', 'MtGroovius', 'eeeboo', 'Voltage917', 'davidjricardo', 'anonymous9998', 'AdamBermingham2916', 'XW_Unicorn', 'CHeLSeAr77', 'chilled2m', 'falcon5s', 'ThaBzKneez', 'redzin', 'EtTuLibri', 'Dont_Mess_With_Texas', 'Chemicalsockpuppet', 'amischbetschler', 'Zay2k', '_toboggan', '030503riff', 'painfulplumber', 'portiafimbriata', 'medictao', 'jperl1992', 'couchburner27', 'ehadoux', 'Itzwvvy', 'RedCheekedSalamander', 'PlasticWhisperer', 'diamagnet', 'jakbob', 'BCJ_Eng_Consulting', 'MissBee123', 'p00rleno', 'pophet', 'maximum_cats', 'Euriclea', 'Matt_Shatt', 'Tummy_Butter', 'drdre398', 'seaikh', 'mosquitoman45', 'christopherwrong', 'Petewoolley', 'bedrock_movements', 'HortemusSupreme', 'jsalas1', 'holdencawffle', 'KholdStare88', 'redditicus', 'thevandel', 'Cersad', 'sillysymposiums', 'arcata22', 'Atom612', 'asbruckman', 'hail_taco', 'NavSock', 'helicalslime', 'sourav93', 'philoscience', 'FakeyFaked', 'AEM74', 'n8henrie', 'Prof-', 'iguessimnacef', 'BounceBack-', 'Mishulo', 'rebels8040', 'Bloodlustftw', 'ikatono', 'MsKanta', 'poon-is-food', 'RayderTom', '__tdido__', 'gatech03'])))
- all_ones = bots + normalusers
- challenges = [11,2,3,5,25,3523,25,23,5,235,25]
- blacklisted = ['askouija', 'test', 'freekarma4you']
- def gatherLong(user, comlist):
- pass
- class botSuspect():
- def __init__(self, user):
- levels, spread, uniqComs, ldist, repetitive, breply, parentlist, lkarma, nPosts, comlist = gatherData(user)
- self.length = len(comlist)
- if len(comlist) >= 15:
- print(parentlist)
- self.breply = breply
- self.lkarma = lkarma #high values are bad
- # self.age = age: DO NOT USE IN PRODUCTION
- self.botInName = botInName(user)
- self.repetitive = repetitive
- self.ldist = ldist
- self.uniqComments = uniqComs
- self.nPosts = nPosts
- self.spread = spread
- self.rootCheck = levels
- self.data = self.generateData()
- def generateData(self):
- return [self.breply, self.lkarma, self.botInName, self.repetitive, self.ldist, self.uniqComments, self.nPosts, self.spread, self.rootCheck]
- from termcolor import colored
- import random
- import numpy as np
- def finalize(inpt):
- if inpt == 0.5:
- return 0
- else:
- return(round(inpt))
- def work(comment):
- try:
- comment.refresh()
- except:
- print("Comment deleted! Skipping.")
- return
- for repl in list(comment.replies):
- try:
- if 'bot' in repl.body.lower():
- score_2.append(1)
- break
- except:
- pass
- def botReplyTop(user):
- top_using = [x for x in r2.redditor(user).comments.top(limit=10)][0:3] + [x for x in r3.redditor(user).comments.top(limit=10)][3:6] + [x for x in r4.redditor(user).comments.top(limit=10)][6:10]
- t_list = []
- global score_2
- score_2 = []
- for j in top_using:
- t = threading.Thread(target=work, args=(j,))
- t.daemon = True
- t_list.append(t)
- for x in t_list:
- x.start()
- for x in t_list:
- x.join()
- return len(score_2)
- levDists = []
- def levDist(str1, str2):
- print("Here")
- print("Starting with {} and {}".format(len(str1), len(str2)))
- if len(str1) == 0: return len(str2)
- if len(str2) == 0: return len(str1)
- levMat = np.zeros( (len(str1)+1, len(str2)+1) )
- levMat[:, 0] = [x for x in range(len(str1)+1)]
- levMat[0, :] = [x for x in range(len(str2)+1)]
- for x in range(len(str1)):
- for j in range(len(str2)):
- if str2[j] == str1[x]: levMat[x+1, j+1] = levMat[x,j]
- else:
- levMat[x+1, j+1] = min(levMat[x, j+1], levMat[x+1, j], levMat[x, j]) + 1
- levDists.append(1.0 - float(levMat[-1, -1])/float(max(len(str1), len(str2))))
- print("End")
- def levDistPer(comlist):
- for x in levDists: levDists.remove(x)
- flist = [j for j in comlist][:]
- lev_thread_list = []
- x = 0
- while x < len(flist)-1:
- t = threading.Thread(target=levDist, args=(('' if len(comlist[x].body) <= 300 else comlist[x].body.lower()[:150]) + comlist[x].body.lower()[-150 if len(comlist[x].body) > 300 else 0:], ('' if len(comlist[x+1].body) <= 300 else comlist[x+1].body.lower()[:150]) + comlist[x+1].body.lower()[-150 if len(comlist[x+1].body) > 300 else 0:], ))
- t.daemon = True
- lev_thread_list.append(t)
- x+=1
- for lev_t in lev_thread_list:
- lev_t.start()
- for lev_t in lev_thread_list:
- lev_t.join()
- try:
- print(float(sum(levDists))/float(len(levDists)))
- return float(sum(levDists))/float(len(levDists))
- except:
- return 0
- def botInName(user):
- return 1 if 'bot' in str(user).lower() else 0.01
- def getSameLevels(user, comlist):
- # print(user)
- total = 0
- tlevel = 0
- for comment in comlist:
- total += 1
- if comment.is_root:
- tlevel += 1
- pcount = float(tlevel)/float(total)
- return 0.01 if pcount == 0 else pcount
- def keyWordPres(user, comlist):
- tcount = 0
- hopeful = {"bot":0, "source code":0, "feedback":0, "FAQ":0, "*":0, "**":0, "^":0}
- for comment in comlist:
- tcount += 1
- for item in hopeful:
- if item in comment.body.lower():
- hopeful[item] += 1
- hopeful_sort = sorted(hopeful.items(), key=operator.itemgetter(1))
- return 0.01 if float(hopeful_sort[-1][1])/float(tcount) == 0 else float(hopeful_sort[-1][1])/float(tcount)
- def isRepetitive(user, comlist):
- if len(comlist) == 0:
- return 0
- x = 0
- uniqueComments = []
- flist = [j for j in comlist]
- flength = len(flist)
- freqDict = {}
- while x < len(flist):
- aldone = []
- bad = stopwords.words('english') + stopwords.words('spanish') + stopwords.words('portuguese') + list(string.punctuation)
- content = flist[x].body.replace("["," ").replace("]"," ")
- if content.lower() not in uniqueComments:
- uniqueComments.append(content.lower())
- for key in list(string.punctuation) + ['\n']:
- content = content.replace(key, '')
- words = [i for i in content.lower().split(' ') if i.replace("'s",'').replace("'nt",'').replace("'ve",'').replace("'ll",'').replace("'m",'') not in bad and i.strip("'`").strip('`') != '']
- for thing in words:
- if thing not in aldone:
- aldone.append(thing)
- try:
- freqDict[thing] += 1
- except:
- freqDict[thing] = 1
- x += 1
- oDict = sorted(freqDict.items(), key=operator.itemgetter(1))
- # print('ODICT:', oDict[-1][1])
- return (float(oDict[-1][1])/float(flength) + float(oDict[-2][1])/float(flength))/2
- def uniqueComments(user, comlist):
- x = 0
- uniqueComments = []
- flist = [j for j in comlist]
- flength = len(flist)
- freqDict = {}
- while x < len(flist):
- content = flist[x].body
- if content.lower() not in uniqueComments:
- uniqueComments.append(content.lower())
- x += 1
- return len(uniqueComments)/len(comlist)
- def avTime(user, comlist):
- x = 0
- totals = []
- flist = [j for j in comlist]
- while x < len(flist)-1:
- totals.append(flist[x].created_utc - flist[x+1].created_utc)
- x+=1
- # print(sum(totals))
- # print(len(totals))
- result = float(sum(totals))/float(len(totals))
- return result
- def avTimeSTD(user, comlist):
- x = 0
- totals = []
- flist = [j for j in comlist]
- while x < len(flist)-1:
- totals.append(flist[x].created_utc - flist[x+1].created_utc)
- x+=1
- result = np.std(totals)/np.mean(totals)
- return result
- def fewPosts(user, innum):
- tplist = [post for post in r.redditor(user).submissions.new(limit=100)]
- return 0.01 if len(tplist) == 0 else float(innum)/float(len(tplist))
- #low scores are bad news -- divide (# comments / #subs)
- def getSpread(user, comlist):
- subsList = []
- for item in comlist:
- if str(item.subreddit) not in subsList:
- subsList.append(str(item.subreddit))
- # print(subsList)
- return 0.01 if float(len(comlist))/float(len(subsList)) == 0 else float(len(comlist))/float(len(subsList))
- meanList = []
- stdList = []
- def normalize(lists):
- newLists = []
- x = np.array(lists)
- for idx in range(len(lists[0])):
- y = np.array(x.T[idx])
- meanList.append(y.mean())
- stdList.append(y.std())
- print(y)
- print(len(meanList))
- print(len(stdList))
- new = (y-y.mean())/y.std()
- newLists.append(new.tolist())
- return np.array(newLists).T.tolist()
- train = {'awkwardtheturtle':0, 'n00b_bot':1, 'spez':0, 'SnapshillBot':1, 'i-make-robots':0, 'katnissbot':0, 'TuneHD':0, 'scienceofficerspock':0, 'thiscatmightcheeryou':1, 'just2centsBot':1, 'teal_knight':0, '_locktrap_':0, 'MacrophageUK':0, 'audobot':0, 'jeopardyqbot':1, 'trexmatt':0, 'biohazard-flames':0, '67859295710582735625':0, 'roastedbagel':0, 'R4V3-0N':0, 'thefitadventure':0, 'edcraffleadmin':1, 'rynowill':0, 'infrequentcommentor':0, 'mafzz_99':0, 'BFair2Prez':1, 'whattocallmyself':0, 'the-blox':1, 'minati1':1, 'MudStank':0, 'transcribot':1}
- # k=1
- # for item in train:
- # print(f"{item} is valued at {train[item]} in index {k}")
- # k+=1
- def csv_normal(rdm=False):
- if rdm:
- # random.shuffle(all_ones)
- bdata = []
- labels = []
- xn=0
- for thing in all_ones:
- xn+=1
- print(f"{xn}.) {thing}")
- try:
- ctest = botSuspect(thing)
- myList = ctest.generateData()
- print(myList)
- bdata.append(myList)
- labels.append([1] if thing in bots else [0])
- open("trainers.csv", "w").write("")
- with open("trainers.csv", "w") as f:
- writer = csv.writer(f)
- writer.writerows([labels[x] + bdata[x] for x in range(len(labels))])
- except Exception as e:
- print(str(e))
- continue
- print(bdata)
- bdata = normalize(bdata)
- for idx, thing in enumerate(bdata):
- print(thing)
- print(labels[idx])
- labels[idx] += thing
- labels = [meanList] + [stdList] + labels
- with open("trainers.csv", "w") as f:
- writer = csv.writer(f)
- writer.writerows(labels)
- # x = botSuspect("ClearlyCoder")
- # print(x.data)
- # exit()
- # _strt = time.time()
- # botSuspect('jacksfilmsbot')
- # botSuspect('spez')
- # botSuspect('sodypop')
- # print(time.time() - _strt)
- # rf = open("botdata.csv", "r")
- # rr = csv.reader(rf)
- # rlist = list(rr)
- # [len(x) for x in rlist]
- # rdata = normalize([[float(j) for j in x[1:]] for x in rlist])
- # rlabels = [[float(j) for j in x[:1]] for x in rlist]
- # print(len([x for x in rdata]))
- # print(meanList)
- # print(stdList)
- # for idx, thing in enumerate(rdata):
- # rlabels[idx] += thing
- # rlabels = [meanList] + [stdList] + rlabels
- # print(rlabels)
- # with open("trainers.csv", "w") as f:
- # writer = csv.writer(f)
- # writer.writerows(rlabels)
- # tstr = botSuspect(input())
- # print(tstr.generateData())
- # exit()
- # csv_normal(rdm=True)
- # for item in all_ones:
- # try:
- # print(f"https://www.reddit.com/user/{item}")
- # TT = botSuspect(item)
- # print(TT.repetitive)
- # print(TT.uniqComments)
- # x = input()
- # except Exception as e:
- # print(str(e))
- # print(item)
- # exit()
- # for moderator in r.subreddit('science').moderator():
- # try:
- # print(str(moderator))
- # if 'bot' not in str(moderator).lower(): normalusers.append(str(moderator))
- # open('newsave.txt','w').write(str(normalusers))
- # except Exception as e:
- # print(str(e))
- # print(len(normalusers))
- # csv_normal(rdm=True)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement