Created
April 15, 2016 18:20
-
-
Save vlas-ilya/83c0e01dc16370828910d3891e467da5 to your computer and use it in GitHub Desktop.
sudo ln -s "/path/to/generate.py" /bin/generate
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python | |
import argparse | |
import requests | |
def send_request(params): | |
r = requests.post('http://online-generators.ru/ajax.php', data=params) | |
return r.text | |
def generate_text_request(params): | |
paragraph = params.paragraph | |
word = params.word | |
type_text = params.type | |
text = send_request({ | |
'processor': 'text', | |
'paragraph': paragraph, | |
'word': word, | |
'type': type_text | |
}) | |
text = text[3:][:-4].replace('</p><p>', '\n\n') | |
return text | |
def generate_number_request(params): | |
min_value = params.min | |
max_value = params.max | |
count = params.count | |
separator = params.separator | |
repeat = params.repeat | |
return send_request({ | |
'processor': 'numbers', | |
'min': min_value, | |
'max': max_value, | |
'count': count, | |
'separator': separator, | |
'repeat': repeat | |
}) | |
def generate_names_request(params): | |
count = params.count | |
surname = params.surname | |
name = params.name | |
patronymic = params.patronymic | |
sex = params.sex | |
names = send_request({ | |
'processor': 'names', | |
'count': count, | |
'radioname': 'fullname', | |
'_surname': surname, | |
'_name': name, | |
'_patronymic': patronymic, | |
'sex': sex | |
}) | |
names = names[35:][:-12].replace('</span></li><li><i class="icon-user"></i><span>', '\n') | |
return names | |
def generate_jokes_request(): | |
jokes = send_request({ | |
'processor': 'jokes' | |
}) | |
return jokes[:jokes.index('#')] | |
def generate_passwords_request(params): | |
num = params.num | |
lower = params.lower | |
upper = params.upper | |
symbol = params.symbol | |
count = params.count | |
passwords = send_request({ | |
'processor': 'passwords', | |
'num': num, | |
'lower': lower, | |
'upper': upper, | |
'symbol': symbol, | |
'count': count | |
}) | |
return passwords.replace(' ', '\n')[1:] | |
def generate_compliments_request(params): | |
sex = params.sex | |
type_compl = params.type_compl | |
if sex == 'man': | |
sex = 1 | |
else: | |
sex = 0 | |
compliments = send_request({ | |
'processor': 'compliments', | |
'sex': sex, | |
'type_compl': type_compl | |
}) | |
return compliments[:compliments.index('#')] | |
def generate_quotes_request(): | |
quotes = send_request({ | |
'processor': 'quotes' | |
}) | |
quotes = quotes[:quotes.index('##')] + ' ' + quotes[quotes.index('##') + 2:] | |
return quotes[:quotes.index('#')] | |
def generate_facts_request(): | |
facts = send_request({ | |
'processor': 'facts' | |
}) | |
return facts[:facts.index('#')] | |
def usage(): | |
return '''generate --processor=<type of generator> [params...] | |
Type of generator: | |
text - generate meaningful text with the specified parameters. | |
Example: generate --processor=text --paragraph=3 --word=60 --type=fish | |
numbers - generate random number. | |
Example: generate --processor=numbers --min=1 --max=100 --count=4 --separator=spacecomma --repeat=1 | |
names - generate random russian names. | |
Example: generate --processor=names --count=10 --surname=1 --name=1 --patronymic=1 --sex=all | |
jokes - generates a funny joke. | |
Example: generate --processor=jokes | |
compliments - generate a compliment. | |
Example: generate --processor=compliments --sex=woman --type_compl=0 | |
passwords - generate a password. | |
Example: generate --processor=passwords --num=1 --lower=1 --upper=1 --symbol=1 --count=10 | |
quotes - generate a quote. | |
Example: generate --processor=quotes | |
facts - generate a fact. | |
Example: generate --processor=facts''' | |
if __name__ == '__main__': | |
parser = argparse.ArgumentParser(description='Command line client for Online-Generators.RU', usage=usage()) | |
parser.add_argument('--processor', type=str, help='Type of generator (Available values: text, numbers, names, jokes, compliments, passwords, quotes, facts)') | |
parser.add_argument('--paragraph', default=3, type=int, help='Count paragraphs for processor=text') | |
parser.add_argument('--word', default=60, type=int, help='Count words in paragraph for processor=text') | |
parser.add_argument('--type', default='fish', type=str, help='Type of text for processor=text (Available values: prose, business, science, humor, home, med, lorem, fish)') | |
parser.add_argument('--min', default=1, type=int, help='Min value for processor=number') | |
parser.add_argument('--max', default=100, type=int, help='Max value for processor=number') | |
parser.add_argument('--count', default=100, type=int, help='Count of elements for processor=number, processor=names and processor=passwords') | |
parser.add_argument('--separator', default='spacecomma', type=str, help='Separator for numbers for processor=number') | |
parser.add_argument('--repeat', default=1, type=int, help='If --repeat=1, then it will not repeat. For processor=number') | |
parser.add_argument('--surname', default=1, type=int, help='Result contains surname. For processor=names') | |
parser.add_argument('--name', default=1, type=int, help='Result contains name. For processor=names') | |
parser.add_argument('--patronymic', default=1, type=int, help='Result contains patronymic. For processor=names') | |
parser.add_argument('--sex', default='all', type=str, help='Oh yeah baby (Available values: all, man and woman). For processor=names and processor=compliments') | |
parser.add_argument('--type_compl', default=0, type=int, help='If type_comp=1 then word, else if type_comp=0 then phrase. For processor=compliments') | |
parser.add_argument('--num', default=1, type=int, help='For processor=passwords') | |
parser.add_argument('--lower', default=1, type=int, help='If =1 then this type of symbol to be used in the password. For processor=passwords') | |
parser.add_argument('--upper', default=1, type=int, help='If =1 then this type of symbol to be used in the password. For processor=passwords') | |
parser.add_argument('--symbol', default=1, type=int, help='If =1 then this type of symbol to be used in the password. For processor=passwords') | |
args = parser.parse_args() | |
# todo validate | |
url = 'http://online-generators.ru/ajax.php' | |
result = None | |
if args.processor is None: | |
parser.print_help() | |
elif args.processor == 'text': | |
result = generate_text_request(args) | |
elif args.processor == 'numbers': | |
result = generate_number_request(args) | |
elif args.processor == 'names': | |
result = generate_names_request(args) | |
elif args.processor == 'jokes': | |
result = generate_jokes_request() | |
elif args.processor == 'passwords': | |
result = generate_passwords_request(args) | |
elif args.processor == 'compliments': | |
result = generate_compliments_request(args) | |
elif args.processor == 'quotes': | |
result = generate_quotes_request() | |
elif args.processor == 'facts': | |
result = generate_facts_request() | |
if result is not None: | |
print result |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment