Advertisement
Guest User

Untitled

a guest
Jan 8th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (Symbol as any).asyncIterator = Symbol.asyncIterator || Symbol.for("Symbol.asyncIterator");
  2.  
  3. import * as Redis from 'ioredis';
  4. import * as Mongo from 'mongodb';
  5.  
  6. import { FilmlistManager } from './entry-source/filmlist/filmlist-manager';
  7. import { RedisDatastoreProvider } from './datastore/redis';
  8. import { MediathekViewWebVerteilerFilmlistRepository } from './entry-source/filmlist/repository';
  9. import { RedisLockProvider } from './lock/redis';
  10. import { QueueProvider } from './queue';
  11. import { AsyncEnumerable } from './common/enumerable/async-enumerable';
  12. import { now } from './common/utils';
  13. import { Serializer, Serializable } from './serializer';
  14. import { BullQueueProvider } from './queue/bull/provider';
  15. import { DistributedLoopProvider } from './distributed-loop/index';
  16. import { FilmlistEntrySource } from './entry-source/filmlist/filmlist-entry-source';
  17. import { Filmlist } from './entry-source/filmlist/filmlist';
  18. import { HighPrecisionTimer, measureTime, EventLoopWatcher } from './utils/index';
  19. import { MongoEntryRepository } from './repository/mongo/entry-repository';
  20. import { EntriesImporter } from './entries-importer/importer';
  21. import { Keys } from './keys';
  22. import { DataType } from './datastore/index';
  23.  
  24. const watcher = new EventLoopWatcher(1000);
  25.  
  26. watcher.watch(0).subscribe(console.log);
  27.  
  28. (async () => {
  29.   try {
  30.     Serializer.registerPrototype(Filmlist)
  31.  
  32.     const redis = new Redis();
  33.     const mongo = await Mongo.MongoClient.connect('mongodb://localhost:27017');
  34.  
  35.     const db = mongo.db('mediathekviewweb');
  36.     const entriesCollection = db.collection('entries');
  37.  
  38.     const datastoreProvider = new RedisDatastoreProvider(redis);
  39.     const lockProvider = new RedisLockProvider(redis);
  40.     const filmlistRepository = new MediathekViewWebVerteilerFilmlistRepository('https://verteiler.mediathekviewweb.de/');
  41.     const loopProvider = new DistributedLoopProvider(lockProvider);
  42.     const queueProvider = new BullQueueProvider();
  43.     const entryRepository = new MongoEntryRepository(entriesCollection);
  44.  
  45.     const filmlistManager = new FilmlistManager(datastoreProvider, filmlistRepository, loopProvider, queueProvider);
  46.     filmlistManager.run();
  47.  
  48.     const filmlistEntrySource = new FilmlistEntrySource(datastoreProvider, queueProvider);
  49.     filmlistEntrySource.run();
  50.  
  51.     const importer = new EntriesImporter(entryRepository, lockProvider, datastoreProvider);
  52.     importer.import(filmlistEntrySource);
  53.   } catch (error) {
  54.     console.log(error);
  55.   }
  56. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement