| 1 |
|
| 2 |
import datetime |
| 3 |
import sys, os |
| 4 |
from random import randint |
| 5 |
from time import time |
| 6 |
import threading |
| 7 |
|
| 8 |
from pymongo import MongoClient |
| 9 |
|
| 10 |
from random import randrange |
| 11 |
|
| 12 |
with open(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'hamletdistinct.t'), 'r') as f: |
| 13 |
hamlet_all = f.read() |
| 14 |
|
| 15 |
genData = hamlet_all.split(' ') |
| 16 |
|
| 17 |
def hamlet(count): |
| 18 |
return genData[randint(1, len(genData) - 1)] + ('' if count == 1 else ' ' + hamlet(count - 1)) |
| 19 |
|
| 20 |
book = MongoClient('mongodb://{}:{}@127.0.0.1:27017'.format('hamletuser', 'taco3'))['librarygen']['book'] |
| 21 |
|
| 22 |
def to_iso(ts): |
| 23 |
return datetime.datetime.fromtimestamp(ts).replace(microsecond=0).isoformat() + 'Z' |
| 24 |
|
| 25 |
def run(): |
| 26 |
then = time() |
| 27 |
count = 0 |
| 28 |
while True: |
| 29 |
try: |
| 30 |
item = { |
| 31 |
"title": hamlet(4), |
| 32 |
"authors": [hamlet(_) for _ in range(1, randrange(2,4))], |
| 33 |
"editor": hamlet(1) if randrange(4) == 0 else None, |
| 34 |
"abstract": hamlet(randrange(100, 400)), |
| 35 |
"metadata": { |
| 36 |
"pages": randrange(1,400), |
| 37 |
"isbn": '9780' + str(randrange(100000000, 999999999)), |
| 38 |
"genre": hamlet(1), |
| 39 |
}, |
| 40 |
"created": to_iso(datetime.datetime.utcnow().timestamp()), |
| 41 |
"modified": to_iso(datetime.datetime.utcnow().timestamp()), |
| 42 |
} |
| 43 |
book.insert_one(item) |
| 44 |
count = count + 1 |
| 45 |
except KeyboardInterrupt: |
| 46 |
now = time() |
| 47 |
print('Stopped ({})'.format(count / (now - then))) |
| 48 |
sys.exit(0) |
| 49 |
|
| 50 |
|
| 51 |
if __name__ == '__main__': |
| 52 |
run() |
| 53 |
|