#!/usr/bin/env python
# -*- coding: utf-8 -*-

''' 
#######################################################################################################

AUTHOR:             Adam Dynamic
CONTACT:            helloadamdynamic@gmail.com / www.adamdynamic.com
LAST REVISION:      27 June 2014

PROJECT:            Automatron
DESCRIPTION:        Contains word lists used to filter tweets etc

#######################################################################################################
'''

### Define banned list of words (tweets containing them will be filtered out)


# Contains terms that the tweet string (not the list of words) is searched for
# Less efficient so only those words that 'definitely' need removed are included
WORDLIST_BANNED_STRINGSEARCH = [
                    '$',
                    'porn',
                    'sex',
                    'cunt',
                    'fuck',
                    'hitler',
                    'http',
                    '@',
                    '\\',
                    '#',
                    '!',
                    'ooo',
                    'aaa',
                    'eee',
                    'iii',
                    'uuu',
                    'ggg',
                    'xxx'
                        ]

# Sebastian is a classy guy so doesn't like to swear or curse
WORDLIST_BANNED_OFFENSIVE = [
                    'shit',
                    'shits',
                    'shat',
                    'fuck',
                    'fucks',
                    'fcuk',
                    'bitch',
                    'bitches',
                    'bitchs',
                    'bastard',
                    'bastards',
                    'cock',
                    'cocks',
                    'cunt',
                    'cunts',
                    'crap',
                    'arse',
                    'ass',
                    'damn',
                    'asshole',
                    'assholes',
                    'arsehole',
                    'bugger',
                    'fucker',
                    'fuckers',
                    'fucking',
                    'fuckin',
                    'fucked',
                    'motherfucker',
                    'motherfuckers',
                    'motherfucking',
                    'nigger',
                    'nigga',
                    'niggas',
                    'niggers',
                    'niggaz',
                    'pimp',
                    'pimps',
                    'whore',
                    'whores',
                    'gay',
                    'gays',
                    'lesbian',
                    'lesbians',
                    'cum',
                    'tit',
                    'tits',
                    'dick',
                    'dicks',
                    'dickhead',
                    'dickheads',
                    'slut',
                    'sluts',
                    'wank',
                    'wanker',
                    'wankers',
                    'jerk',
                    'jerks',
                    'shag',
                    'shags',
                    'blow',
                    'blows',
                    'douche',
                    'douhes',
                    'faggot',
                    'faggots',
                    'fag',
                    'fags',
                    'hell',
                    'douchebag',
                    'douchebags',
                    'whore',
                    'whores',
                    'muff',
                    'muffs',
                    'nosh',
                    'knob',
                    'knobs',
                    'knobhead',
                    'knobheads',
                    'orgasm',
                    'orgasms',
                    'vagina',
                    'vaginas',
                    'pussy',
                    'pussies',
                    'skank',
                    'skanks',
                    'slag',
                    'slags',
                    'titties',
                    'tits',
                    'breast',
                    'breasts',
                    'anus',
                    'butt',
                    'butts',
                    'blowjob',
                    'blowjobs',
                    'bollock',
                    'bollocks',
                    'screwed',
                    'weed',
                    'piss',
                    'pisses',
                    'pissed',
                    'pisser',
                    'pissing',
                    'sex',
                    'sexy',
                    'sexiest',
                    'scum',
                    'darn',
                    'heck',
                    'bullshit'
                    ]

# Sebastian cares about the english language, so he's unlikely to use much slang
WORDLIST_BANNED_SLANG = [
                    'lol',
                    'lmao',
                    'lmaoo',
                    'ur',
                    'omg',
                    'omfg',
                    'imma',
                    'ima',
                    'ya',
                    'yer',
                    'u',
                    'ur',
                    'gonna',
                    'gunna',
                    'gotta',
                    'brb',
                    'wtf',
                    'coz',
                    'cuz',
                    'lil',
                    'blunt',
                    'blunts',
                    'bluntz',
                    'buddy',
                    'bro',
                    'bruh',
                    'pal',
                    'n',
                    'thug',
                    'gangsta',
                    'gang',
                    'gangster',
                    'wanna',
                    'makin',
                    'drinkin',
                    'smokin',
                    'goin',
                    'yo',
                    'yuh',
                    'aint',
                    'smokin',
                    'ting',
                    'wt',
                    'eh',
                    'ehh',
                    'ehhh',
                    'tryna',
                    'yall',
                    'props',
                    'ganna',
                    'cop',
                    'nd',
                    'idk',
                    'bt',
                    'guy',
                    'guys',
                    'dude',
                    'puttin',
                    'lettin',
                    'w',
                    'y',
                    'plz',
                    'pls',
                    'rt',
                    'rts',
                    'sick',
                    'sickest'
                    'ill',
                    'illest',
                    'ugh',
                    'pic',
                    'brew',
                    'tbh',
                    'baller',
                    'da',
                    'dude',
                    'dudes',
                    'rn',
                    'badass',
                    'hella',
                    'bros',
                    'yay',
                    'meth',
                    'mj',
                    'condom',
                    'booty',
                    'booties'


                    ]

# I want Sebastian to be broadly positive nin tone, so any overtly negative tweets should be filtered
WORDLIST_BANNED_NEGATIVE = [
                    'hate',
                    'haters',
                    'haterz',
                    'hitler',
                    'dead',
                    'death',
                    'ill',
                    'hit',
                    'retard',
                    'pedophile',
                    'paedophile',
                    'rape',
                    'rapes',
                    'rapist',
                    'rapists'


                    ]

# Sebastian's character is 'British' so it doesn't make sense for him to tweet words premoninantly used by Americans
WORDLIST_BANNED_AMERICANISMS = [
                    'soda',
                    'honor',
                    'color',
                    'mall',
                    'sidewalk',
                    'automobile',
                    'cop',
                    'cops',
                    'bumping',
                    'suck',
                    'sucked',
                    'sucks',
                    'dollar',
                    'dollars',
                    'cent',
                    'cents',
                    'commercial',
                    'soccer',
                    'basketball',
                    'checkers',
                    '6s',
                    'movie',
                    'usa'


                    ]
# Sebastian is not in school but it seems that a lot of twitter users are, these filter out any in appropriate references
WORDLIST_BANNED_EDUCATION = [
                    'campus',
                    'highschool',
                    'middleschool',
                    'college',
                    'school',
                    'graduation',
                    'graduated',
                    'class',
                    'teacher',
                    'professor',
                    'studying',
                    'textbook',
                    'coursework',
                    'homework',
                    'app',
                    'grade'

                    ]

# One of Sebastian's interests is 'chess' which gets picked up when people misspell 'cheese'
WORDLIST_BANNED_FOOD = [
                    'toastie',
                    'fries',
                    'sandwich',
                    'chilli',
                    'hotdog',
                    'burger',
                    'milk',
                    'macaroni',
                    'mac',
                    'pizza',
                    'quarterpounder'

                    ]


# Sebastian is a (single, childless) man so in order to protect his cover any tweets with gender-specific terms are removed
WORDLIST_BANNED_GENDER = [
                    'child',
                    'woman',
                    'women',
                    'lady',
                    'ladies',
                    'parent',
                    'parents',
                    'man',
                    'men',
                    'son',
                    'sons',
                    'boy',
                    'boys',
                    'kid',
                    'kids',
                    'girl',
                    'girls',
                    'daughter',
                    'daughters',
                    'wife',
                    'wifey',
                    'wives',
                    'husband',
                    'hubby',
                    'hubs',
                    'aunt',
                    'aunts',
                    'aunty',
                    'uncle',
                    'uncles',
                    'dad',
                    'dads',
                    'daddy',
                    'father',
                    'fathers',
                    'mom',
                    'moms',
                    'mommy',
                    'mum',
                    'mother',
                    'sister',
                    'brother',
                    'nephew',
                    'niece',
                    'she',
                    'he',
                    'her',
                    'our',
                    'us',
                    'male',
                    'female',
                    'makeover',
                    'make-up',
                    'lip-stick',
                    'lipstick',
                    'lipsticks'
                    'mascara',
                    'eyeliner',
                    'tampon',
                    'pregnant',
                    'bra',
                    'panties',
                    'knickers',
                    'baby',
                    'cute',
                    'cry',
                    'cried',
                    'babysit',
                    'babysat'
                    ]




WORDLIST_MOST_FREQUENT_1000 = [
'the',
'of',
'and',
'a',
'is',
'in',
'he',
'to',
'have',
'it',
'be',
'for',
'I',
'they',
'with',
'not',
'that',
'on',
'she',
'as',
'at',
'by',
'this',
'we',
'you',
'do',
'from',
'or',
'an',
'but',
'which',
'would',
'say',
'all',
'one',
'will',
'there',
'that',
'who',
'make',
'when',
'if',
'man',
'can',
'what',
'no',
'go',
'time',
'up',
'into',
'year',
'other',
'out',
'could',
'some',
'new',
'that',
'know',
'these',
'take',
'see',
'get',
'come',
'only',
'two',
'any',
'state',
'give',
'now',
'may',
'than',
'then',
'also',
'find',
'as',
'way',
'day',
'first',
'even',
'use',
'first',
'more',
'many',
'must',
'think',
'such',
'like',
'should',
'so',
'through',
'more',
'people',
'those',
'over',
'where',
'just',
'seem',
'life',
'good',
'each',
'become',
'back',
'world',
'here',
'between',
'both',
'thing',
'hand',
'own',
'very',
'tell',
'how',
'down',
'work',
'because',
'school',
'same',
'under',
'never',
'house',
'after',
'great',
'old',
'still',
'leave',
'well',
'want',
'three',
'another',
'call',
'against',
'last',
'number',
'show',
'most',
'child',
'one',
'feel',
'part',
'ask',
'place',
'few',
'about',
'might',
'turn',
'long',
'while',
'so',
'small',
'problem',
'during',
'word',
'live',
'system',
'area',
'write',
'again',
'follow',
'begin',
'Mister',
'fact',
'without',
'program',
'eye',
'there',
'country',
'Mrs.',
'himself',
'city',
'stand',
'provide',
'so',
'much',
'work',
'group',
'hold',
'too',
'case',
'most',
'off',
'line',
'on',
'night',
'for',
'course',
'put',
'point',
'government',
'something',
'head',
'American',
'let',
'away',
'always',
'church',
'bring',
'high',
'out',
'war',
'since',
'every',
'unite',
'room',
'class',
'keep',
'before',
'need',
'than',
'however',
'try',
'though',
'little',
'use',
'woman',
'end',
'boy',
'hear',
'upon',
'company',
'service',
'large',
'side',
'order',
'run',
'car',
'week',
'why',
'water',
'social',
'move',
'president',
'business',
'figure',
'start',
'face',
'several',
'mean',
'set',
'toward',
'appear',
'over',
'question',
'among',
'value',
'young',
'nothing',
'family',
'within',
'serve',
'member',
'once',
'form',
'law',
'matter',
'often',
'help',
'continue',
'John',
'name',
'before',
'only',
'four',
'power',
'general',
'per',
'believe',
'after',
'possible',
'body',
'development',
'foot',
'force',
'increase',
'pay',
'important',
'type',
'meet',
'nation',
'play',
'cost',
'today',
'expect',
'kind',
'door',
'street',
'home',
'big',
'reach',
'girl',
'require',
'result',
'month',
'hour',
'lead',
'period',
'office',
'later',
'white',
'reason',
'field',
'sit',
'such',
'example',
'home',
'job',
'action',
'consider',
'develop',
'college',
'rate',
'around',
'history',
'national',
'pass',
'next',
'like',
'experience',
'position',
'moment',
'God',
'mind',
'public',
'best',
'study',
'happen',
'sense',
'local',
'interest',
'walk',
'perhaps',
'method',
'idea',
'grow',
'town',
'money',
'until',
'read',
'book',
'policy',
'effort',
'person',
'add',
'ever',
'remain',
'themselves',
'although',
'talk',
'five',
'speak',
'probably',
'other',
'first',
'almost',
'effect',
'society',
'whole',
'condition',
'second',
'across',
'little',
'level',
'center',
'student',
'light',
'art',
'shall',
'send',
'determine',
'wife',
'material',
'least',
'yet',
'voice',
'community',
'party',
'ago',
'air',
'carry',
'wait',
'mother',
'tax',
'build',
'board',
'lose',
'too',
'already',
'involve',
'Doctor',
'human',
'fall',
'available',
'thus',
'all',
'learn',
'draw',
'anything',
'process',
'minute',
'understand',
'table',
'special',
'federal',
'section',
'death',
'much',
'difference',
'break',
'remember',
'century',
'control',
'far',
'economic',
'open',
'ground',
'stop',
'stage',
'full',
'certain',
'department',
'whether',
'change',
'father',
'better',
'different',
'piece',
'indicate',
'picture',
'place',
'really',
'quite',
'receive',
'music',
'itself',
'road',
'university',
'information',
'behind',
'enough',
'situation',
'common',
'purpose',
'include',
'free',
'letter',
'produce',
'paper',
'apply',
'true',
'together',
'mile',
'arm',
'report',
'cut',
'land',
'early',
'evidence',
'much',
'usually',
'issue',
'present',
'real',
'age',
'plan',
'peace',
'bear',
'necessary',
'strong',
'drive',
'open',
'step',
'record',
'less',
'horse',
'spend',
'friend',
'right',
'enter',
'six',
'wall',
'short',
'watch',
'officer',
'son',
'really',
'statement',
'morning',
'unit',
'heart',
'more',
'all',
'modern',
'therefore',
'space',
'greater',
'fire',
'no',
'back',
'long',
'along',
'court',
'above',
'story',
'alone',
'right',
'personal',
'suggest',
'river',
'able',
'nor',
'secretary',
'less',
'operation',
'allow',
'sometimes',
'organization',
'major',
'clear',
'everything',
'sure',
'half',
'plant',
'reduce',
'county',
'describe',
'plan',
'wear',
'subject',
'cent',
'report',
'right',
'seek',
'datum',
'decide',
'source',
'food',
'else',
'nature',
'committee',
'accept',
'stay',
'event',
'district',
'volume',
'opportunity',
'station',
'close',
'equipment',
'need',
'basic',
'including',
'around',
'explain',
'third',
'trial',
'rise',
'die',
'offer',
'except',
'research',
'note',
'defense',
'cover',
'contain',
'enough',
'private',
'black',
'because',
'feeling',
'south',
'down',
'love',
'cause',
'purpose',
'raise',
'represent',
'suppose',
'change',
'buy',
'movement',
'finally',
'factor',
'act',
'amount',
'product',
'hope',
'military',
'club',
'science',
'prepare',
'leader',
'million',
'almost',
'better',
'difficult',
'reaction',
'test',
'temperature',
'complete',
'decision',
'drop',
'fund',
'up',
'market',
'assume',
'dead',
'attention',
'price',
'quality',
'game',
'sort',
'dark',
'color',
'lie',
'simply',
'political',
'fight',
'building',
'pressure',
'husband',
'realize',
'establish',
'medical',
'since',
'recent',
'obtain',
'choose',
'recognize',
'window',
'front',
'growth',
'study',
'permit',
'image',
'along',
'soon',
'exist',
'direction',
'basis',
'concern',
'simple',
'win',
'character',
'administration',
'machine',
'ten',
'earth',
'either',
'term',
'technique',
'religious',
'God',
'teacher',
'principle',
'production',
'present',
'sale',
'form',
'anyone',
'increase',
'evening',
'association',
'size',
'actually',
'disagree',
'meeting',
'kill',
'instead',
'range',
'fill',
'army',
'labor',
'hair',
'floor',
'face',
'cell',
'rule',
'international',
'wish',
'relation',
'trouble',
'thought',
'writer',
'performance',
'population',
'create',
'Congress',
'result',
'lot',
'pull',
'stock',
'especially',
'yes',
'leach',
'language',
'maintain',
'foreign',
'plane',
'act',
'pattern',
'agree',
'dollar',
'meaning',
'element',
'view',
'off',
'fine',
'list',
'religion',
'beyond',
'opinion',
'design',
'rather',
'natural',
'procedure',
'central',
'west',
'occur',
'tree',
'certainly',
'various',
'individual',
'low',
'summer',
'support',
'near',
'operate',
'literature',
'sound',
'project',
'southern',
'answer',
'normal',
'patient',
'late',
'industrial',
'return',
'well',
'attitude',
'knowledge',
'catch',
'poet',
'role',
'achieve',
'length',
'similar',
'limit',
'point',
'England',
'return',
'fail',
'hard',
'hospital',
'red',
'yet',
'throw',
'relate',
'addition',
'western',
'manner',
'inch',
'single',
'public',
'throughout',
'hundred',
'hot',
'prove',
'support',
'join',
'higher',
'ready',
'train',
'distance',
'how',
'end',
'spring',
'hit',
'bad',
'function',
'hotel',
'police',
'maybe',
'no',
'former',
'physical',
'farm',
'before',
'prevent',
'charge',
'detail',
'moral',
'directly',
'treatment',
'remove',
'entire',
'possibility',
'far',
'set',
'radio',
'loss',
'individual',
'sign',
'lay',
'merely',
'scene',
'corner',
'responsibility',
'Christian',
'apparently',
'measure',
'mean',
'likely',
'indeed',
'gun',
'eat',
'couple',
'ride',
'but',
'larger',
'truth',
'state',
'practice',
'suddenly',
'fear',
'play',
'lady',
'season',
'cold',
'pick',
'chance',
'express',
'base',
'institution',
'hang',
'until',
'theory',
'worker',
'mention',
'design',
'beautiful',
'agreement',
'answer',
'extend',
'leg',
'rest',
'vary',
'Brown',
'smile',
'respect',
'brother',
'analysis',
'future',
'right',
'feed',
'discussion',
'total',
'item',
'influence',
'freedom',
'conference',
'bill',
'commission',
'claim',
'final',
'strength',
'shoot',
'difficulty',
'success',
'region',
'structure',
'discuss',
'effective',
'mark',
'hall',
'dog',
'glass',
'relationship',
'choice',
'hill',
'discover',
'recently',
'model',
'concern',
'date',
'ship',
'American',
'easy',
'as',
'listen',
'particular',
'enjoy',
'ball',
'general',
'technical',
'force',
'governor',
'announce',
'nearly',
'firm',
'experiment',
'pool',
'serious',
'aid',
'longer',
'visit',
'strike',
'square',
'trip',
'wonder',
'director',
'latter',
'love',
'improve',
'Europe',
'enemy',
'according',
'care',
'mouth',
'one',
'deal',
'edge',
'object',
'account',
'slowly',
'demand',
'sell',
'afternoon',
'suffer',
'oil',
'little',
'press',
'early',
'wide',
'that',
'contribute',
'instance',
'compare',
'poem',
'direct',
'citizen',
'herself',
'audience',
'U.S.',
'election',
'fix',
'park',
'bar',
'immediately',
'cause',
'division',
'English',
'agency',
'French',
'rather',
'boat',
'faith',
'top',
'artist',
'page',
'name',
'saint',
'facility',
'finger',
'manager',
'gas',
'series',
'supply',
'tooth',
'weapon',
'approach',
'bed',
'specific',
'save',
'marry',
'none',
'parent',
'myself',
'attend',
'will',
'employee',
'authority',
'publish',
'settle',
'marriage',
'however',
'fiscal',
'look',
'interact',
'democratic',
'generally',
'select',
'kid',
'captain',
'importance',
'march',
'forget',
'bank',
'finish',
'affair',
'oh',
'animal',
'hope'
                    ]
