mirror of
https://github.com/RoboSats/robosats.git
synced 2025-02-20 12:19:00 +00:00
Merge pull request #15 from Reckless-Satoshi/user-generator-page
User generator page
This commit is contained in:
commit
17d8c2f88c
5
.gitignore
vendored
5
.gitignore
vendored
@ -637,4 +637,7 @@ FodyWeavers.xsd
|
||||
|
||||
# Django
|
||||
*migrations*
|
||||
frontend/static/frontend*
|
||||
frontend/static/frontend/main*
|
||||
|
||||
# robosats
|
||||
frontend/static/assets/avatars*
|
||||
|
4834
api/nick_generator/dicts/en/adjectives.py
Executable file
4834
api/nick_generator/dicts/en/adjectives.py
Executable file
File diff suppressed because it is too large
Load Diff
452
api/nick_generator/dicts/en/adverbs.py
Executable file
452
api/nick_generator/dicts/en/adverbs.py
Executable file
@ -0,0 +1,452 @@
|
||||
adverbs = [
|
||||
"Utterly",
|
||||
"Rapturously",
|
||||
"Most",
|
||||
"Unfairly",
|
||||
"Always",
|
||||
"Up",
|
||||
"Patiently",
|
||||
"Nearby",
|
||||
"Fortunately",
|
||||
"Potentially",
|
||||
"Astonishingly",
|
||||
"Conceivably",
|
||||
"Excitedly",
|
||||
"Hungrily",
|
||||
"Badly",
|
||||
"About",
|
||||
"Certainly",
|
||||
"Tenderly",
|
||||
"Predictably",
|
||||
"Sedately",
|
||||
"Equally",
|
||||
"Truthfully",
|
||||
"Formerly",
|
||||
"Restfully",
|
||||
"Jokingly",
|
||||
"Unexpectedly",
|
||||
"However",
|
||||
"Extremely",
|
||||
"Amazingly",
|
||||
"Quite",
|
||||
"Lawfully",
|
||||
"Emptily",
|
||||
"Affectionately",
|
||||
"Nevertheless",
|
||||
"Nicely",
|
||||
"Seriously",
|
||||
"Hardly",
|
||||
"Justly",
|
||||
"Sternly",
|
||||
"Cruelly",
|
||||
"Today",
|
||||
"Understandingly",
|
||||
"Backwards",
|
||||
"Powerfully",
|
||||
"Understandably",
|
||||
"Accusingly",
|
||||
"Irritably",
|
||||
"Violently",
|
||||
"Commonly",
|
||||
"How",
|
||||
"Wrongly",
|
||||
"Loudly",
|
||||
"Innocently",
|
||||
"Probably",
|
||||
"Meaningfully",
|
||||
"Conspicuously",
|
||||
"Rightly",
|
||||
"Overseas",
|
||||
"Wildly",
|
||||
"Awkwardly",
|
||||
"Finally",
|
||||
"Absently",
|
||||
"Inwardly",
|
||||
"Likely",
|
||||
"Greedily",
|
||||
"Breathlessly",
|
||||
"Ideally",
|
||||
"Miserably",
|
||||
"Deceivingly",
|
||||
"Tonight",
|
||||
"Simply",
|
||||
"Yet",
|
||||
"Compassionately",
|
||||
"Crisply",
|
||||
"Decidedly",
|
||||
"Last",
|
||||
"Inadequately",
|
||||
"Perpetually",
|
||||
"Lots",
|
||||
"Busily",
|
||||
"Fervently",
|
||||
"Late",
|
||||
"Solemnly",
|
||||
"Enviously",
|
||||
"Not",
|
||||
"Happily",
|
||||
"Wearily",
|
||||
"Nearly",
|
||||
"Before",
|
||||
"Openly",
|
||||
"Intensely",
|
||||
"Much",
|
||||
"Fiercely",
|
||||
"Enormously",
|
||||
"Separately",
|
||||
"Helpfully",
|
||||
"Tremendously",
|
||||
"Blindly",
|
||||
"Long",
|
||||
"First",
|
||||
"Energetically",
|
||||
"Partially",
|
||||
"Lately",
|
||||
"Incredibly",
|
||||
"Awfully",
|
||||
"Regularly",
|
||||
"Now",
|
||||
"Crossly",
|
||||
"Increasingly",
|
||||
"Indeed",
|
||||
"Practically",
|
||||
"Famously",
|
||||
"Down",
|
||||
"Over",
|
||||
"Spitefully",
|
||||
"Desperately",
|
||||
"Harshly",
|
||||
"Distinctly",
|
||||
"Confidentially",
|
||||
"Inadvertently",
|
||||
"Best",
|
||||
"Disgustingly",
|
||||
"Sleepily",
|
||||
"Ferociously",
|
||||
"Incidentally",
|
||||
"Naturally",
|
||||
"Selfishly",
|
||||
"Rightfully",
|
||||
"Lightly",
|
||||
"Shyly",
|
||||
"Longingly",
|
||||
"Superstitiously",
|
||||
"Too",
|
||||
"Suspiciously",
|
||||
"Especially",
|
||||
"Stingily",
|
||||
"Rarely",
|
||||
"Curiously",
|
||||
"Poorly",
|
||||
"Very",
|
||||
"Downstairs",
|
||||
"Briskly",
|
||||
"Thus",
|
||||
"Exactly",
|
||||
"Yearly",
|
||||
"Evenly",
|
||||
"Clumsily",
|
||||
"Daintily",
|
||||
"Heartily",
|
||||
"Gratefully",
|
||||
"Elegantly",
|
||||
"Quick",
|
||||
"Terribly",
|
||||
"Never",
|
||||
"Already",
|
||||
"Behind",
|
||||
"Frenetically",
|
||||
"Unlike",
|
||||
"Obviously",
|
||||
"Meekly",
|
||||
"Wonderingly",
|
||||
"Brightly",
|
||||
"Thoroughly",
|
||||
"Doubtfully",
|
||||
"Wrong",
|
||||
"Sheepishly",
|
||||
"Moreover",
|
||||
"Messily",
|
||||
"Wisely",
|
||||
"Wonderfully",
|
||||
"Properly",
|
||||
"Tightly",
|
||||
"Slow",
|
||||
"Absolutely",
|
||||
"Closely",
|
||||
"Repeatedly",
|
||||
"Underground",
|
||||
"Mockingly",
|
||||
"Abroad",
|
||||
"Positively",
|
||||
"Briefly",
|
||||
"Reproachfully",
|
||||
"Lazily",
|
||||
"Hopefully",
|
||||
"Continually",
|
||||
"Generally",
|
||||
"Theoretically",
|
||||
"Just",
|
||||
"Freely",
|
||||
"Playfully",
|
||||
"Carefully",
|
||||
"Intently",
|
||||
"Slowly",
|
||||
"Mysteriously",
|
||||
"There",
|
||||
"Fairly",
|
||||
"Pleasantly",
|
||||
"Madly",
|
||||
"Speedily",
|
||||
"Off",
|
||||
"Calmly",
|
||||
"Deliberately",
|
||||
"Hard",
|
||||
"Clearly",
|
||||
"Frankly",
|
||||
"Quintessentially",
|
||||
"Tensely",
|
||||
"East",
|
||||
"Quaveringly",
|
||||
"Mentally",
|
||||
"Consequently",
|
||||
"Less",
|
||||
"Determinedly",
|
||||
"Grumpily",
|
||||
"Searchingly",
|
||||
"Stubbornly",
|
||||
"Unwillingly",
|
||||
"Bravely",
|
||||
"Neatly",
|
||||
"Generously",
|
||||
"Eventually",
|
||||
"Gleefully",
|
||||
"Anyway",
|
||||
"Dangerously",
|
||||
"Highly",
|
||||
"Presumably",
|
||||
"Cheerfully",
|
||||
"Quietly",
|
||||
"So",
|
||||
"Fearlessly",
|
||||
"Low",
|
||||
"Angrily",
|
||||
"Therefore",
|
||||
"Rather",
|
||||
"Easily",
|
||||
"Ultimately",
|
||||
"Earlier",
|
||||
"Again",
|
||||
"Early",
|
||||
"Ravenously",
|
||||
"Cautiously",
|
||||
"Perfectly",
|
||||
"Foolishly",
|
||||
"Evidently",
|
||||
"Carelessly",
|
||||
"Warmly",
|
||||
"Stupidly",
|
||||
"Daringly",
|
||||
"Where",
|
||||
"Unbelievably",
|
||||
"Abruptly",
|
||||
"Ever",
|
||||
"Wholly",
|
||||
"Obediently",
|
||||
"Gladly",
|
||||
"Otherwise",
|
||||
"Strangely",
|
||||
"Slyly",
|
||||
"Instantly",
|
||||
"Hopelessly",
|
||||
"Far",
|
||||
"Impulsively",
|
||||
"Greatly",
|
||||
"Loosely",
|
||||
"Definitely",
|
||||
"Solidly",
|
||||
"Here",
|
||||
"Out",
|
||||
"Proudly",
|
||||
"Coaxingly",
|
||||
"Strictly",
|
||||
"Darkly",
|
||||
"Roughly",
|
||||
"Venomously",
|
||||
"Interestingly",
|
||||
"Purely",
|
||||
"Later",
|
||||
"Even",
|
||||
"Better",
|
||||
"Accidentally",
|
||||
"Likewise",
|
||||
"Righteously",
|
||||
"Besides",
|
||||
"Until",
|
||||
"Usually",
|
||||
"Willfully",
|
||||
"Doubtlessly",
|
||||
"Previously",
|
||||
"Totally",
|
||||
"Intermittently",
|
||||
"Eagerly",
|
||||
"Anywhere",
|
||||
"Rigidly",
|
||||
"Mechanically",
|
||||
"Straight",
|
||||
"Inside",
|
||||
"Safely",
|
||||
"Regretfully",
|
||||
"Hurriedly",
|
||||
"Enough",
|
||||
"Least",
|
||||
"Surprisingly",
|
||||
"Thoughtfully",
|
||||
"Quarterly",
|
||||
"Regrettably",
|
||||
"Completely",
|
||||
"Correctly",
|
||||
"Fortnightly",
|
||||
"Joyously",
|
||||
"Marvelously",
|
||||
"Outside",
|
||||
"Weekly",
|
||||
"Almost",
|
||||
"Delicately",
|
||||
"On",
|
||||
"Readily",
|
||||
"Seemingly",
|
||||
"Basically",
|
||||
"Seldom",
|
||||
"Soon",
|
||||
"Sometimes",
|
||||
"Reluctantly",
|
||||
"Upstairs",
|
||||
"Ever",
|
||||
"Furthermore",
|
||||
"Occasionally",
|
||||
"Somewhat",
|
||||
"Reassuringly",
|
||||
"Faithfully",
|
||||
"Unfortunately",
|
||||
"Diligently",
|
||||
"Afterward",
|
||||
"Strongly",
|
||||
"Oddly",
|
||||
"Urgently",
|
||||
"Softly",
|
||||
"Doggedly",
|
||||
"Somewhere",
|
||||
"Back",
|
||||
"Recklessly",
|
||||
"Suddenly",
|
||||
"Arrogantly",
|
||||
"Knowingly",
|
||||
"Tomorrow",
|
||||
"Mostly",
|
||||
"Coolly",
|
||||
"Really",
|
||||
"Successfully",
|
||||
"Normally",
|
||||
"Monthly",
|
||||
"Importantly",
|
||||
"Additionally",
|
||||
"Professionally",
|
||||
"Outwardly",
|
||||
"Apparently",
|
||||
"Fully",
|
||||
"Frantically",
|
||||
"Right",
|
||||
"Cleanly",
|
||||
"Backward",
|
||||
"Undoubtedly",
|
||||
"Pleasingly",
|
||||
"Cleverly",
|
||||
"Worriedly",
|
||||
"Inquisitively",
|
||||
"Heavily",
|
||||
"Away",
|
||||
"Hourly",
|
||||
"Swiftly",
|
||||
"Hastily",
|
||||
"Entirely",
|
||||
"Dearly",
|
||||
"Deeply",
|
||||
"Cheaply",
|
||||
"Little",
|
||||
"Noisily",
|
||||
"Adversely",
|
||||
"Delightfully",
|
||||
"Negatively",
|
||||
"Unhappily",
|
||||
"Similarly",
|
||||
"Infrequently",
|
||||
"Vastly",
|
||||
"Daily",
|
||||
"Promptly",
|
||||
"Rudely",
|
||||
"Actually",
|
||||
"Rapidly",
|
||||
"Next",
|
||||
"Viciously",
|
||||
"Sympathetically",
|
||||
"Well",
|
||||
"Luckily",
|
||||
"Frequently",
|
||||
"Honestly",
|
||||
"Often",
|
||||
"Under",
|
||||
"Elsewhere",
|
||||
"Then",
|
||||
"Pretty",
|
||||
"Queerly",
|
||||
"More",
|
||||
"Frightfully",
|
||||
"Painfully",
|
||||
"Below",
|
||||
"Constantly",
|
||||
"Towards",
|
||||
"Periodically",
|
||||
"In",
|
||||
"Recently",
|
||||
"Furiously",
|
||||
"Guiltily",
|
||||
"Ironically",
|
||||
"Since",
|
||||
"Hatefully",
|
||||
"Thankfully",
|
||||
"Indoors",
|
||||
"Barely",
|
||||
"Truly",
|
||||
"Along",
|
||||
"Scarcely",
|
||||
"Bashfully",
|
||||
"Fast",
|
||||
"Anxiously",
|
||||
"Sharply",
|
||||
"Immediately",
|
||||
"Helplessly",
|
||||
"Politely",
|
||||
"Yesterday",
|
||||
"Nonetheless",
|
||||
"Sadly",
|
||||
"Kindly",
|
||||
"Triumphantly",
|
||||
"Quickly",
|
||||
"Still",
|
||||
"Nervously",
|
||||
"Above",
|
||||
"Enticingly",
|
||||
"Near",
|
||||
"Meanwhile",
|
||||
"Expertly",
|
||||
"Mindfully",
|
||||
"Dreamily",
|
||||
"Virtually",
|
||||
"Annually",
|
||||
"Beautifully",
|
||||
"Gently",
|
||||
"Exclusively",
|
||||
"Passionately",
|
||||
"Boldly",
|
||||
]
|
12591
api/nick_generator/dicts/en/nouns.py
Executable file
12591
api/nick_generator/dicts/en/nouns.py
Executable file
File diff suppressed because it is too large
Load Diff
11643
api/nick_generator/dicts/es/adjectives.py
Executable file
11643
api/nick_generator/dicts/es/adjectives.py
Executable file
File diff suppressed because it is too large
Load Diff
902
api/nick_generator/dicts/es/adverbs.py
Executable file
902
api/nick_generator/dicts/es/adverbs.py
Executable file
@ -0,0 +1,902 @@
|
||||
adverbs = [
|
||||
"Bien",
|
||||
"Mal",
|
||||
"Despacio",
|
||||
"Deprisa",
|
||||
"Como",
|
||||
"Mucho",
|
||||
"Poco",
|
||||
"Muy",
|
||||
"Casi",
|
||||
"Todo",
|
||||
"Nada",
|
||||
"Algo",
|
||||
"Medio",
|
||||
"Demasiado",
|
||||
"Bastante",
|
||||
"Más",
|
||||
"Menos",
|
||||
"Además",
|
||||
"Incluso",
|
||||
"También",
|
||||
"Mucho",
|
||||
"Poco",
|
||||
"Muy",
|
||||
"Casi",
|
||||
"Todo",
|
||||
"Nada",
|
||||
"Algo",
|
||||
"Medio",
|
||||
"Demasiado",
|
||||
"Bastante",
|
||||
"Más",
|
||||
"Menos",
|
||||
"Además",
|
||||
"Incluso",
|
||||
"También",
|
||||
"Tampoco",
|
||||
"Jamás",
|
||||
"Nunca",
|
||||
"Acaso",
|
||||
"Quizá",
|
||||
"Quizás",
|
||||
"Rápidamente",
|
||||
"Adrede",
|
||||
"Lento",
|
||||
"Bajo",
|
||||
"Conforme",
|
||||
"Mal",
|
||||
"Bien",
|
||||
"Igual",
|
||||
"Mejor",
|
||||
"Suavemente",
|
||||
"Regular",
|
||||
"Lento",
|
||||
"Rápidamente",
|
||||
"Fuerte",
|
||||
"Velozmente",
|
||||
"Apasionadamente",
|
||||
"Ligero",
|
||||
"Tiernamente",
|
||||
"Amable",
|
||||
"Claro",
|
||||
"Extremadamente",
|
||||
"Justo",
|
||||
"Tanto",
|
||||
"Demasiado",
|
||||
"Mucho",
|
||||
"Bastante",
|
||||
"Mitad",
|
||||
"Absolutamente",
|
||||
"Casi",
|
||||
"Tan",
|
||||
"Nada",
|
||||
"Solo",
|
||||
"Terriblemente",
|
||||
"Excesivamente",
|
||||
"Apenas",
|
||||
"Todo",
|
||||
"Mayormente",
|
||||
"Aproximadamente",
|
||||
"Poco",
|
||||
"Posiblemente",
|
||||
"Acaso",
|
||||
"Probablemente",
|
||||
"Quizá",
|
||||
"Seguramente",
|
||||
"Aparentemente",
|
||||
"Eventualmente",
|
||||
"Indudablemente",
|
||||
"No",
|
||||
"Ni",
|
||||
"Nunca",
|
||||
"Jamás",
|
||||
"Tampoco",
|
||||
"Nadie",
|
||||
"Nada",
|
||||
"Ningún",
|
||||
"Ninguno",
|
||||
"Ninguna",
|
||||
"Quién",
|
||||
"Cómo",
|
||||
"Cuán",
|
||||
"Cuándo",
|
||||
"Cuál",
|
||||
"Qué",
|
||||
"Quiénes",
|
||||
"Cuánto",
|
||||
"Cuántos",
|
||||
"Abajo",
|
||||
"Abaldonadamente",
|
||||
"Abarrisco",
|
||||
"Abastadamente",
|
||||
"Abastanza",
|
||||
"Abasto",
|
||||
"Abatidamente",
|
||||
"Abdicativamente",
|
||||
"Abemoladamente",
|
||||
"Abiertamente",
|
||||
"Abnegadamente",
|
||||
"Abominablemente",
|
||||
"Abondadamente",
|
||||
"Abondo",
|
||||
"Abondosamente",
|
||||
"Aborreciblemente",
|
||||
"Abrasadamente",
|
||||
"Abreviadamente",
|
||||
"Absolutamente",
|
||||
"Abundadamente",
|
||||
"Abundantemente",
|
||||
"Abundo",
|
||||
"Aburridamente",
|
||||
"Abés",
|
||||
"Acabadamente",
|
||||
"Acabdilladamente",
|
||||
"Académicamente",
|
||||
"Acaloradamente",
|
||||
"Acatadamente",
|
||||
"Accesoriamente",
|
||||
"Accidentadamente",
|
||||
"Accidentalmente",
|
||||
"Accidentariamente",
|
||||
"Acedamente",
|
||||
"Aceleradamente",
|
||||
"Acentuadamente",
|
||||
"Aceptablemente",
|
||||
"Aceptadamente",
|
||||
"Aceradamente",
|
||||
"Acerbamente",
|
||||
"Acerca",
|
||||
"Aclaratoriamente",
|
||||
"Acogedoramente",
|
||||
"Acomodadamente",
|
||||
"Acompasadamente",
|
||||
"Acordablemente",
|
||||
"Acordadamente",
|
||||
"Acordantemente",
|
||||
"Acostumbradamente",
|
||||
"Acremente",
|
||||
"Acrisoladamente",
|
||||
"Activamente",
|
||||
"Actualmente",
|
||||
"Acuciadamente",
|
||||
"Acuciosamente",
|
||||
"Acullá",
|
||||
"Acá",
|
||||
"Adagietto",
|
||||
"Adagio",
|
||||
"Adecuadamente",
|
||||
"Adelant",
|
||||
"Adelantadamente",
|
||||
"Adelante",
|
||||
"Adelantre",
|
||||
"Además",
|
||||
"Adentro",
|
||||
"Adonde",
|
||||
"Adrede",
|
||||
"Afuera",
|
||||
"Agradablemente",
|
||||
"Agravantemente",
|
||||
"Agraviadamente",
|
||||
"Agresivamente",
|
||||
"Ajoba",
|
||||
"Ajustadamente",
|
||||
"Alarmadamente",
|
||||
"Alarmantemente",
|
||||
"Alborozadamente",
|
||||
"Alcalizablemente",
|
||||
"Alcalizadamente",
|
||||
"Alegremente",
|
||||
"Alerta",
|
||||
"Algo",
|
||||
"Allende",
|
||||
"Allá",
|
||||
"Allí",
|
||||
"Alocadamente",
|
||||
"Alrededor",
|
||||
"Altamente",
|
||||
"Alternativamente",
|
||||
"Altimétricamente",
|
||||
"Altruistamente",
|
||||
"Altruísticamente",
|
||||
"Altísimamente",
|
||||
"Alzadamente",
|
||||
"Ambiguamente",
|
||||
"Ambulatoriamente",
|
||||
"Amenguadamente",
|
||||
"Amigablemente",
|
||||
"Amistosamente",
|
||||
"Amorosamente",
|
||||
"Ampliamente",
|
||||
"Analíticamente",
|
||||
"Analógicamente",
|
||||
"Anatómicamente",
|
||||
"Anchamente",
|
||||
"Andante",
|
||||
"Angostamente",
|
||||
"Animadamente",
|
||||
"Aniñadamente",
|
||||
"Anoche",
|
||||
"Antaño",
|
||||
"Anteayer",
|
||||
"Antedía",
|
||||
"Antemano",
|
||||
"Antemeridiano",
|
||||
"Anteriormente",
|
||||
"Antes",
|
||||
"Anticipadamente",
|
||||
"Antier",
|
||||
"Antiguamente",
|
||||
"Análogamente",
|
||||
"Aparentemente",
|
||||
"Apartadamente",
|
||||
"Aparte",
|
||||
"Apasionadamente",
|
||||
"Apegadamente",
|
||||
"Apenas",
|
||||
"Aposta",
|
||||
"Apostadamente",
|
||||
"Aproximadamente",
|
||||
"Apuestamente",
|
||||
"Apuesto",
|
||||
"Apuradamente",
|
||||
"Aquende",
|
||||
"Aquí",
|
||||
"Ardorosamente",
|
||||
"Armoniosamente",
|
||||
"Arraigadamente",
|
||||
"Arrebatadamente",
|
||||
"Arregladamente",
|
||||
"Arregladísimamente",
|
||||
"Arriba",
|
||||
"Categoría:Adverbios",
|
||||
"Asaz",
|
||||
"Asertivamente",
|
||||
"Asimismo",
|
||||
"Asmadamente",
|
||||
"Astrosamente",
|
||||
"Asumadamente",
|
||||
"Atentamente",
|
||||
"Atrasadamente",
|
||||
"Atrasmano",
|
||||
"Atriqui",
|
||||
"Atroden",
|
||||
"Atrodén",
|
||||
"Atrás",
|
||||
"Aun",
|
||||
"Auténticamente",
|
||||
"Ayuso",
|
||||
"Aína",
|
||||
"Aúna",
|
||||
"Bacano",
|
||||
"Bacán",
|
||||
"Bastadamente",
|
||||
"Bastante",
|
||||
"Bastantemente",
|
||||
"Bastantísimamente",
|
||||
"Bellacamente",
|
||||
"Bellamente",
|
||||
"Bien",
|
||||
"Bulliciosamente",
|
||||
"Básicamente",
|
||||
"Caballerescamente",
|
||||
"Caballerosamente",
|
||||
"Cachada",
|
||||
"Cachá",
|
||||
"Caleta",
|
||||
"Calorosamente",
|
||||
"Calumniosamente",
|
||||
"Calurosamente",
|
||||
"Cansadamente",
|
||||
"Cantidad",
|
||||
"Capitularmente",
|
||||
"Carnalmente",
|
||||
"Caro",
|
||||
"Casi",
|
||||
"Castigadamente",
|
||||
"Categóricamente",
|
||||
"Católicamente",
|
||||
"Cavilosamente",
|
||||
"Cañón",
|
||||
"Celadamente",
|
||||
"Cerca",
|
||||
"Chistosamente",
|
||||
"Chévere",
|
||||
"Cientemente",
|
||||
"Científicamente",
|
||||
"Ciertamente",
|
||||
"Cierto",
|
||||
"Clandestinamente",
|
||||
"Claramente",
|
||||
"Claro",
|
||||
"Clericalmente",
|
||||
"Clínicamente",
|
||||
"Comercialmente",
|
||||
"Compaginadamente",
|
||||
"Compasadamente",
|
||||
"Completamente",
|
||||
"Comúnmente",
|
||||
"Concienzudamente",
|
||||
"Confidencialmente",
|
||||
"Confidentemente",
|
||||
"Conforme",
|
||||
"Connotativamente",
|
||||
"Conscientemente",
|
||||
"Considerablemente",
|
||||
"Contentamente",
|
||||
"Contiguamente",
|
||||
"Contimás",
|
||||
"Contumazmente",
|
||||
"Convencionalmente",
|
||||
"Convincentemente",
|
||||
"Coordinadamente",
|
||||
"Copiosamente",
|
||||
"Correctamente",
|
||||
"Corriente",
|
||||
"Crecidamente",
|
||||
"Creíblemente",
|
||||
"Cronológicamente",
|
||||
"Crudamente",
|
||||
"Cruelmente",
|
||||
"Cruentamente",
|
||||
"Crédulamente",
|
||||
"Cual",
|
||||
"Cuando",
|
||||
"Cuantimás",
|
||||
"Cuantiosamente",
|
||||
"Cuanto",
|
||||
"Cuidadosamente",
|
||||
"Curiosamente",
|
||||
"Cuándo",
|
||||
"Cínicamente",
|
||||
"Cómicamente",
|
||||
"Cómo",
|
||||
"Daquén",
|
||||
"Debajo",
|
||||
"Decididamente",
|
||||
"Decisivamente",
|
||||
"Definitivamente",
|
||||
"Delant",
|
||||
"Delante",
|
||||
"Delicadamente",
|
||||
"Demasiadamente",
|
||||
"Demasiado",
|
||||
"Demás",
|
||||
"Denantes",
|
||||
"Denotativamente",
|
||||
"Densuno",
|
||||
"Dentro",
|
||||
"Dependientemente",
|
||||
"Deprisa",
|
||||
"Depurablemente",
|
||||
"Depuradamente",
|
||||
"Desafortunadamente",
|
||||
"Desafrancesadamente",
|
||||
"Desagarradamente",
|
||||
"Desagora",
|
||||
"Desagradablemente",
|
||||
"Desahuciadamente",
|
||||
"Desaladamente",
|
||||
"Desalentadamente",
|
||||
"Desamparadamente",
|
||||
"Desapasionadamente",
|
||||
"Desapercibidamente",
|
||||
"Desaseadamente",
|
||||
"Descaradamente",
|
||||
"Descarnadamente",
|
||||
"Descaudilladamente",
|
||||
"Descoordinadamente",
|
||||
"Descubiertamente",
|
||||
"Descuidadamente",
|
||||
"Desdeñosamente",
|
||||
"Desencantadamente",
|
||||
"Desfavorablemente",
|
||||
"Despacio",
|
||||
"Despectivamente",
|
||||
"Despegadamente",
|
||||
"Despiertamente",
|
||||
"Después",
|
||||
"Desvergonzadamente",
|
||||
"Detrás",
|
||||
"Dichosamente",
|
||||
"Didácticamente",
|
||||
"Difícilmente",
|
||||
"Directamente",
|
||||
"Categoría:Adverbios",
|
||||
"Discretamente",
|
||||
"Disculpablemente",
|
||||
"Disculpadamente",
|
||||
"Disparadamente",
|
||||
"Disparatadamente",
|
||||
"Dispositivamente",
|
||||
"Divinalmente",
|
||||
"Divinamente",
|
||||
"Doble",
|
||||
"Doctamente",
|
||||
"Doctoralmente",
|
||||
"Doctísimamente",
|
||||
"Dolientemente",
|
||||
"Doliosamente",
|
||||
"Donde",
|
||||
"Dondequiera",
|
||||
"Doquiera",
|
||||
"Dorsoventralmente",
|
||||
"Dramáticamente",
|
||||
"Dulce",
|
||||
"Durante",
|
||||
"Dónde",
|
||||
"Eficientemente",
|
||||
"Elásticamente",
|
||||
"Embarazadamente",
|
||||
"Embarazosamente",
|
||||
"Embrolladamente",
|
||||
"Eminencialmente",
|
||||
"Eminentemente",
|
||||
"Emocionalmente",
|
||||
"Emotivamente",
|
||||
"Empeñadamente",
|
||||
"Empíricamente",
|
||||
"Enamoradamente",
|
||||
"Enatíamente",
|
||||
"Encarecidamente",
|
||||
"Encargadamente",
|
||||
"Encumbradamente",
|
||||
"Ende",
|
||||
"Endenantes",
|
||||
"Enderezadamente",
|
||||
"Endiabladamente",
|
||||
"Endurecidamente",
|
||||
"Enemigablemente",
|
||||
"Enemigamente",
|
||||
"Enfadosamente",
|
||||
"Enfermamente",
|
||||
"Enfrente",
|
||||
"Enfáticamente",
|
||||
"Engañosamente",
|
||||
"Enigmáticamente",
|
||||
"Enojadamente",
|
||||
"Enojosamente",
|
||||
"Enormemente",
|
||||
"Enseguida",
|
||||
"Enseñadamente",
|
||||
"Entendidamente",
|
||||
"Enteramente",
|
||||
"Enternecidamente",
|
||||
"Entesadamente",
|
||||
"Entonce",
|
||||
"Entonces",
|
||||
"Entrañablemente",
|
||||
"Entrañalmente",
|
||||
"Entregadamente",
|
||||
"Entregamientre",
|
||||
"Entretanto",
|
||||
"Entricadamente",
|
||||
"Enérgicamente",
|
||||
"Equivocadamente",
|
||||
"Equívocamente",
|
||||
"Erróneamente",
|
||||
"Escabrosamente",
|
||||
"Escandalosamente",
|
||||
"Escarnecidamente",
|
||||
"Escasamente",
|
||||
"Escenográficamente",
|
||||
"Escientemente",
|
||||
"Escondidamente",
|
||||
"Escuderilmente",
|
||||
"Escuetamente",
|
||||
"Escépticamente",
|
||||
"Esencialmente",
|
||||
"Esforzadamente",
|
||||
"Esmeradamente",
|
||||
"Especialmente",
|
||||
"Esporádicamente",
|
||||
"Esto",
|
||||
"Estonces",
|
||||
"Estrechamente",
|
||||
"Estrechísimamente",
|
||||
"Estrictamente",
|
||||
"Estultamente",
|
||||
"Estupendamente",
|
||||
"Estéticamente",
|
||||
"Evidentemente",
|
||||
"Exactamente",
|
||||
"Excepto",
|
||||
"Excesivamente",
|
||||
"Exclusivamente",
|
||||
"Expeditamente",
|
||||
"Extendidamente",
|
||||
"Extensamente",
|
||||
"Extensivamente",
|
||||
"Extraodinariamente",
|
||||
"Extraordinariamente",
|
||||
"Extravagantemente",
|
||||
"Extrañamente",
|
||||
"Extremadamente",
|
||||
"Fabuloso",
|
||||
"Familiarmente",
|
||||
"Fantasmagóricamente",
|
||||
"Fantásticamente",
|
||||
"Fatal",
|
||||
"Fatalmente",
|
||||
"Favorablemente",
|
||||
"Favorecidamente",
|
||||
"Feamente",
|
||||
"Febrilmente",
|
||||
"Fecundamente",
|
||||
"Festivamente",
|
||||
"Fieramente",
|
||||
"Filatélicamente",
|
||||
"Filosóficamente",
|
||||
"Finalmente",
|
||||
"Firme",
|
||||
"Firmemente",
|
||||
"Flexiblemente",
|
||||
"Formalmente",
|
||||
"Francamente",
|
||||
"Frecuentemente",
|
||||
"Freqüentemente",
|
||||
"Fuera",
|
||||
"Fuertemente",
|
||||
"Fácilmente",
|
||||
"Fóbicamente",
|
||||
"Galantemente",
|
||||
"Gallardamente",
|
||||
"Gananciosamente",
|
||||
"Ganosamente",
|
||||
"Garbosamente",
|
||||
"Garridamente",
|
||||
"Generalmente",
|
||||
"Genialmente",
|
||||
"Gentilmente",
|
||||
"Gloriosamente",
|
||||
"Gramaticalmente",
|
||||
"Grandemente",
|
||||
"Gratarola",
|
||||
"Gratis",
|
||||
"Gravitacionalmente",
|
||||
"Guardadamente",
|
||||
"Gubernativamente",
|
||||
"Guerreramente",
|
||||
"Hartamente",
|
||||
"Harto",
|
||||
"Heurísticamente",
|
||||
"Hogaño",
|
||||
"Honestamente",
|
||||
"Hábilmente",
|
||||
"Ibídem",
|
||||
"Idénticamente",
|
||||
"Ilegalmente",
|
||||
"Imbécilmente",
|
||||
"Impajaritablemente",
|
||||
"Importunadamente",
|
||||
"Importunamente",
|
||||
"Imposiblemente",
|
||||
"Improbablemente",
|
||||
"Incendiariamente",
|
||||
"Categoría:Adverbios",
|
||||
"Inclusivamente",
|
||||
"Inclusive",
|
||||
"Inconscientemente",
|
||||
"Inconsideradamente",
|
||||
"Increíblemente",
|
||||
"Incruentamente",
|
||||
"Indevotamente",
|
||||
"Indignamente",
|
||||
"Indirectamente",
|
||||
"Indudablemente",
|
||||
"Inevitablemente",
|
||||
"Inexplicablemente",
|
||||
"Infaliblemente",
|
||||
"Infernalmente",
|
||||
"Informadamente",
|
||||
"Ingeniosamente",
|
||||
"Inmediatamente",
|
||||
"Inmensamente",
|
||||
"Inopinadamente",
|
||||
"Insistentemente",
|
||||
"Inspeccionadamente",
|
||||
"Intensamente",
|
||||
"Intensivamente",
|
||||
"Interesadamente",
|
||||
"Intrincadamente",
|
||||
"Intrépidamente",
|
||||
"Invariablemente",
|
||||
"Invisiblemente",
|
||||
"Invitadamente",
|
||||
"Invocadamente",
|
||||
"Involuntariamente",
|
||||
"Inútilmente",
|
||||
"Irregularmente",
|
||||
"Irrespetuosamente",
|
||||
"Jovialmente",
|
||||
"Juntamente",
|
||||
"Junto",
|
||||
"Justiniano",
|
||||
"Justo",
|
||||
"Lamentablemente",
|
||||
"Lascivamente",
|
||||
"Lastimeramente",
|
||||
"Lastimosamente",
|
||||
"Lealmente",
|
||||
"Legato",
|
||||
"Lentamente",
|
||||
"Lento",
|
||||
"Lexicalmente",
|
||||
"Lexicográficamente",
|
||||
"Lexicológicamente",
|
||||
"Libertadamente",
|
||||
"Ligeramente",
|
||||
"Lingüísticamente",
|
||||
"Listamente",
|
||||
"Llenamente",
|
||||
"Localmente",
|
||||
"Lujosamente",
|
||||
"Léxicamente",
|
||||
"Líberamente",
|
||||
"Líricamente",
|
||||
"Majestuosamente",
|
||||
"Malavez",
|
||||
"Malavés",
|
||||
"Maldecidamente",
|
||||
"Maldicientemente",
|
||||
"Malditamente",
|
||||
"Mansamente",
|
||||
"Mansito",
|
||||
"Maravillosamente",
|
||||
"Marrulleramente",
|
||||
"Matacaballo",
|
||||
"Materialmente",
|
||||
"Mayormente",
|
||||
"Mayormientre",
|
||||
"Mañana",
|
||||
"Meditativamente",
|
||||
"Mejor",
|
||||
"Menos",
|
||||
"Merecidamente",
|
||||
"Mezcladamente",
|
||||
"Mientra",
|
||||
"Mientras",
|
||||
"Mientre",
|
||||
"Ministerialmente",
|
||||
"Minuciosamente",
|
||||
"Mismo",
|
||||
"Mitad",
|
||||
"Mogollón",
|
||||
"Molestamente",
|
||||
"Monstruosamente",
|
||||
"Monótonamente",
|
||||
"Mucho",
|
||||
"Muchísimo",
|
||||
"Muellemente",
|
||||
"Mutualmente",
|
||||
"Mutuamente",
|
||||
"Muy",
|
||||
"Más",
|
||||
"Nacionalmente",
|
||||
"Nada",
|
||||
"Natural",
|
||||
"Negativamente",
|
||||
"Nerviosamente",
|
||||
"Normalmente",
|
||||
"Novelísticamente",
|
||||
"Nuevamente",
|
||||
"Nunca",
|
||||
"Obligatoriamente",
|
||||
"Obstinadamente",
|
||||
"Obviamente",
|
||||
"Ocasionalmente",
|
||||
"Oficialmente",
|
||||
"Ogaño",
|
||||
"Oralmente",
|
||||
"Organizadamente",
|
||||
"Ostensiblemente",
|
||||
"Pan-",
|
||||
"Papalmente",
|
||||
"Paremiológicamente",
|
||||
"Partidamente",
|
||||
"Pasaderamente",
|
||||
"Paulatinamente",
|
||||
"Pedagógicamente",
|
||||
"Peor",
|
||||
"Pequeñamente",
|
||||
"Perdidamente",
|
||||
"Perfectamente",
|
||||
"Perfectiblemente",
|
||||
"Perfecto",
|
||||
"Perfetamente",
|
||||
"Permisivamente",
|
||||
"Pero",
|
||||
"Personalmente",
|
||||
"Persuasivamente",
|
||||
"Persécula",
|
||||
"Petulantemente",
|
||||
"Piano",
|
||||
"Picantemente",
|
||||
"Picarescamente",
|
||||
"Poco",
|
||||
"Posiblemente",
|
||||
"Posmeridiano",
|
||||
"Posta",
|
||||
"Potencialmente",
|
||||
"Poéticamente",
|
||||
"Precipitosamente",
|
||||
"Precipuamente",
|
||||
"Precisamente",
|
||||
"Preocupadamente",
|
||||
"Prestamente",
|
||||
"Primero",
|
||||
"Principalmente",
|
||||
"Privado",
|
||||
"Probablemente",
|
||||
"Profundamente",
|
||||
"Prontamente",
|
||||
"Prontísimamente",
|
||||
"Provechosamente",
|
||||
"Prudentemente",
|
||||
"Prácticamente",
|
||||
"Pues",
|
||||
"Puntualmente",
|
||||
"Pérfidamente",
|
||||
"Pésimamente",
|
||||
"Pícaramente",
|
||||
"Públicamente",
|
||||
"Quedamente",
|
||||
"Quedito",
|
||||
"Quietamente",
|
||||
"Quizá",
|
||||
"Quizás",
|
||||
"Rateramente",
|
||||
"Razonadamente",
|
||||
"Realmente",
|
||||
"Rechazadamente",
|
||||
"Reciamente",
|
||||
"Recientemente",
|
||||
"Recio",
|
||||
"Recién",
|
||||
"Recuperadamente",
|
||||
"Redro",
|
||||
"Reflexivamente",
|
||||
"Regresivamente",
|
||||
"Reiteradamente",
|
||||
"Relajadamente",
|
||||
"Religiosamente",
|
||||
"Remilgadamente",
|
||||
"Repente",
|
||||
"Repentinamente",
|
||||
"Repeor",
|
||||
"Repetidamente",
|
||||
"Reportadamente",
|
||||
"Reposadamente",
|
||||
"Reservadamente",
|
||||
"Resolutamente",
|
||||
"Resolutivamente",
|
||||
"Resueltamente",
|
||||
"Retenidamente",
|
||||
"Retóricamente",
|
||||
"Revocablemente",
|
||||
"Rigorosamente",
|
||||
"Rigurosamente",
|
||||
"Ritualmente",
|
||||
"Rotundamente",
|
||||
"Rápidamente",
|
||||
"Rápido",
|
||||
"Sacrosantamente",
|
||||
"Saludablemente",
|
||||
"Salutíferamente",
|
||||
"Salvajemente",
|
||||
"Salvamente",
|
||||
"Salvante",
|
||||
"Salvo",
|
||||
"Satisfactoriamente",
|
||||
"Secularmente",
|
||||
"Secundariamente",
|
||||
"Secundo",
|
||||
"Sedativamente",
|
||||
"Seguidamente",
|
||||
"Seguramente",
|
||||
"Seguro",
|
||||
"Según",
|
||||
"Sensatamente",
|
||||
"Sentado",
|
||||
"Separadamente",
|
||||
"Seriamente",
|
||||
"Severamente",
|
||||
"Severely",
|
||||
"Señaladamente",
|
||||
"Señorilmente",
|
||||
"Sic",
|
||||
"Sicológicamente",
|
||||
"Siempre",
|
||||
"Sigilosamente",
|
||||
"Significantemente",
|
||||
"Significativamente",
|
||||
"Simbólicamente",
|
||||
"Simplemente",
|
||||
"Soberbiamente",
|
||||
"Sobrado",
|
||||
"Sobrenaturalmente",
|
||||
"Socorridamente",
|
||||
"Solamente",
|
||||
"Solo",
|
||||
"Sosegadamente",
|
||||
"Sospechosamente",
|
||||
"Suave",
|
||||
"Suavemente",
|
||||
"Subitáneamente",
|
||||
"Suficientemente",
|
||||
"Suficientísimamente",
|
||||
"Sumamente",
|
||||
"Superabundantemente",
|
||||
"Superbamente",
|
||||
"Supereminentemente",
|
||||
"Supersticiosamente",
|
||||
"Supuestamente",
|
||||
"Sutilmente",
|
||||
"Sólo",
|
||||
"Súper",
|
||||
"Tacataca",
|
||||
"Talvez",
|
||||
"Tampoco",
|
||||
"Tangiblemente",
|
||||
"Tanto",
|
||||
"Tarde",
|
||||
"Temporalmente",
|
||||
"Tempranamente",
|
||||
"Temprano",
|
||||
"Tentativamente",
|
||||
"Tercamente",
|
||||
"Terriblemente",
|
||||
"Tiranamente",
|
||||
"Tiranizadamente",
|
||||
"Tiránicamente",
|
||||
"Todavía",
|
||||
"Tolerablemente",
|
||||
"Topográficamente",
|
||||
"Torcidamente",
|
||||
"Toscamente",
|
||||
"Total",
|
||||
"Totalmente",
|
||||
"Tradicionalmente",
|
||||
"Trasca",
|
||||
"Trascartón",
|
||||
"Triangularmente",
|
||||
"Trimestralmente",
|
||||
"Triunfalmente",
|
||||
"Triunfantemente",
|
||||
"Truncadamente",
|
||||
"Tumultuosamente",
|
||||
"Turísticamente",
|
||||
"Tímidamente",
|
||||
"Ulteriormente",
|
||||
"Ultimadamente",
|
||||
"Unidamente",
|
||||
"Uniformemente",
|
||||
"Unilateralmente",
|
||||
"Unipersonalmente",
|
||||
"Usualmente",
|
||||
"Valientemente",
|
||||
"Velozmente",
|
||||
"Veramente",
|
||||
"Verazmente",
|
||||
"Verbigracia",
|
||||
"Verdaderamente",
|
||||
"Viceversa",
|
||||
"Vilmente",
|
||||
"Violentamente",
|
||||
"Virtuosamente",
|
||||
"Visiblemente",
|
||||
"Vistosamente",
|
||||
"Visualmente",
|
||||
"Vivamente",
|
||||
"Vivazmente",
|
||||
"Volando",
|
||||
"Vulgo",
|
||||
"Yuso",
|
||||
"Zafiamente",
|
||||
"Zarrapastrosamente",
|
||||
"Zonzamente",
|
||||
"Ágilmente",
|
||||
"Ásperamente",
|
||||
"Épicamente",
|
||||
"Éticamente",
|
||||
]
|
58804
api/nick_generator/dicts/es/nouns.py
Executable file
58804
api/nick_generator/dicts/es/nouns.py
Executable file
File diff suppressed because it is too large
Load Diff
223
api/nick_generator/nick_generator.py
Executable file
223
api/nick_generator/nick_generator.py
Executable file
@ -0,0 +1,223 @@
|
||||
from .utils import human_format
|
||||
|
||||
import hashlib
|
||||
import time
|
||||
|
||||
"""
|
||||
Deterministic nick generator from SHA256 hash.
|
||||
|
||||
It builds Nicknames as:
|
||||
Adverb + Adjective + Noun + Numeric(0-999)
|
||||
|
||||
With the current English dictionaries there
|
||||
is a total of to 450*4800*12500*1000 =
|
||||
28 Trillion deterministic nicks
|
||||
"""
|
||||
|
||||
class NickGenerator:
|
||||
def __init__(
|
||||
self,
|
||||
lang="English",
|
||||
use_adv=True,
|
||||
use_adj=True,
|
||||
use_noun=True,
|
||||
max_num=999,
|
||||
verbose=False,
|
||||
):
|
||||
"""
|
||||
used_adv: bool , True if adverbs are used in the nick.
|
||||
used_adj: bool , True if adjectives are used in the nick.
|
||||
use_noun: bool , True if nouns are used in the nick.
|
||||
max_num: int, max integer to be used in nick (at least 1)
|
||||
"""
|
||||
if lang == "English":
|
||||
from .dicts.en.adverbs import adverbs
|
||||
from .dicts.en.adjectives import adjectives
|
||||
from .dicts.en.nouns import nouns
|
||||
elif lang == "Spanish":
|
||||
from .dicts.es.adverbs import adverbs
|
||||
from .dicts.es.adjectives import adjectives
|
||||
from .dicts.es.nouns import nouns
|
||||
else:
|
||||
raise ValueError("Language not implemented.")
|
||||
|
||||
print(
|
||||
f"{lang} SHA256 Nick Generator initialized with:"
|
||||
+ f"\nUp to {len(adverbs)} adverbs."
|
||||
+ f"\nUp to {len(adjectives)} adjectives."
|
||||
+ f"\nUp to {len(nouns)} nouns."
|
||||
+ f"\nUp to {max_num+1} numerics.\n"
|
||||
)
|
||||
|
||||
self.use_adv = use_adv
|
||||
self.use_adj = use_adj
|
||||
self.use_noun = use_noun
|
||||
self.max_num = max_num
|
||||
self.verbose = verbose
|
||||
self.adverbs = adverbs
|
||||
self.adjectives = adjectives
|
||||
self.nouns = nouns
|
||||
|
||||
def from_SHA256(self, hash=None):
|
||||
"""
|
||||
Converts hash to int, min-max scales it
|
||||
to the pool size of nicks, uses it as
|
||||
index to construct the nick element by
|
||||
element.
|
||||
|
||||
hash; SHA256 hash as bytes
|
||||
"""
|
||||
|
||||
# Get size of dictionaries for each element
|
||||
num_adv = len(self.adverbs) if self.use_adv else 1
|
||||
num_adj = len(self.adjectives) if self.use_adj else 1
|
||||
num_nouns = len(self.nouns) if self.use_noun else 1
|
||||
|
||||
# Compute pool size by combinatorics
|
||||
pool_size = self.max_num * num_nouns * num_adj * num_adv
|
||||
|
||||
# Min-Max scale the hash relative to the pool size
|
||||
max_int_hash = 2 ** 256
|
||||
int_hash = int(hash, 16)
|
||||
nick_id = int((int_hash / max_int_hash) * pool_size)
|
||||
|
||||
# Compute adverb id
|
||||
if self.use_adv:
|
||||
adv_id = int(nick_id / (self.max_num * num_nouns * num_adj))
|
||||
adv = self.adverbs[adv_id]
|
||||
remainder = nick_id - adv_id * self.max_num * num_nouns * num_adj
|
||||
if self.verbose:
|
||||
print(f"Adverb: {adv}, id {adv_id}.")
|
||||
else:
|
||||
adv_id, adv, remainder = 0, "", nick_id
|
||||
|
||||
# Compute adjective id
|
||||
if self.use_adj:
|
||||
adj_id = int(remainder / (self.max_num * num_nouns))
|
||||
adj = self.adjectives[adj_id]
|
||||
remainder = remainder - adj_id * self.max_num * num_nouns
|
||||
if self.verbose:
|
||||
print(f"Adjective: {adj}, id {adj_id}.")
|
||||
else:
|
||||
adj_id, adj = 0, ""
|
||||
|
||||
# Compute noun id
|
||||
if self.use_noun:
|
||||
noun_id = int(remainder / self.max_num)
|
||||
noun = self.nouns[noun_id]
|
||||
if self.verbose:
|
||||
print(f"Noun: {noun}, id {noun_id}.\n")
|
||||
else:
|
||||
noun_id, noun = 0, ""
|
||||
|
||||
# Remainder is the numeric element
|
||||
if self.max_num > 0:
|
||||
num_id = remainder - noun_id * self.max_num
|
||||
number = str(num_id)
|
||||
else:
|
||||
num_id, number = 0, ""
|
||||
|
||||
# Build nick
|
||||
nick = adv + adj + noun + number
|
||||
|
||||
return nick, nick_id, pool_size
|
||||
|
||||
def short_from_SHA256(
|
||||
self,
|
||||
primer_hash=None,
|
||||
max_length=25,
|
||||
max_iter=10000,
|
||||
):
|
||||
"""
|
||||
Generates Nicks that are short.
|
||||
|
||||
Iterates trough hashes deterministically
|
||||
until it finds a nick that satisfies
|
||||
the lenght restriction.
|
||||
"""
|
||||
hash = primer_hash
|
||||
i = 0
|
||||
while i < max_iter:
|
||||
nick, nick_id, pool_size = self.from_SHA256(hash)
|
||||
if len(nick) <= max_length:
|
||||
return nick, nick_id, pool_size, i
|
||||
else:
|
||||
string = str(hash) + str(42)
|
||||
hash = hashlib.sha256(str.encode(string)).hexdigest()
|
||||
i = i + 1
|
||||
return "", 0, 0, i
|
||||
|
||||
def compute_pool_size_loss(self, max_length=22, max_iter=1000000, num_runs=5000):
|
||||
"""
|
||||
Computes median an average loss of
|
||||
nick pool diversity due to max_lenght
|
||||
restrictions.
|
||||
"""
|
||||
|
||||
import random
|
||||
import statistics
|
||||
|
||||
attempts = []
|
||||
for i in range(num_runs):
|
||||
|
||||
string = str(random.uniform(0, 1000000))
|
||||
hash = hashlib.sha256(str.encode(string)).hexdigest()
|
||||
|
||||
_, _, pool_size, tries = self.short_from_SHA256(hash, max_length)
|
||||
attempts.append(tries)
|
||||
|
||||
median = statistics.median(attempts)
|
||||
mean = statistics.mean(attempts)
|
||||
|
||||
print(f"\nFor max_length of {max_length}:")
|
||||
print(f"Median loss of entropy factor is {median}.")
|
||||
print(f"Mean loss of entropy factor is {mean}.")
|
||||
print(
|
||||
f"Approximate real pool is {human_format( int(pool_size/(mean+1)))} nicks in size."
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
# Just for code timming
|
||||
t0 = time.time()
|
||||
|
||||
# Hardcoded example text and hashing
|
||||
nick_lang = 'English' #Spanish
|
||||
hash = hashlib.sha256(b"No one expected such cool nick!!").hexdigest()
|
||||
max_length = 22
|
||||
max_iter = 100000000
|
||||
|
||||
# Initialized nick generator
|
||||
GenNick = NickGenerator(lang=nick_lang)
|
||||
|
||||
# Generates a short nick with length limit from SHA256
|
||||
nick, nick_id, pool_size, iterations = GenNick.short_from_SHA256(
|
||||
hash, max_length, max_iter
|
||||
)
|
||||
|
||||
# Output
|
||||
print(
|
||||
f"Nick number {nick_id} has been selected among"
|
||||
+ f" {human_format(pool_size)} possible nicks.\n"
|
||||
+ f"Needed {iterations} iterations to find one "
|
||||
+ f"this short.\nYour nick is {nick} !\n"
|
||||
)
|
||||
print(f"Nick lenght is {len(nick)} characters.")
|
||||
print(f"Nick landed at height {nick_id/(pool_size+1)} on the pool.")
|
||||
print(f"Took {time.time()-t0} secs.\n")
|
||||
|
||||
# Print many nicks
|
||||
import random
|
||||
|
||||
random.seed(1)
|
||||
|
||||
for i in range(100):
|
||||
string = str(random.uniform(0, 1000000))
|
||||
hash = hashlib.sha256(str.encode(string)).hexdigest()
|
||||
print(
|
||||
GenNick.short_from_SHA256(hash, max_length=max_length, max_iter=max_iter)[0]
|
||||
)
|
||||
|
||||
# Other analysis
|
||||
GenNick.compute_pool_size_loss(max_length, max_iter, 200)
|
7
api/nick_generator/utils.py
Executable file
7
api/nick_generator/utils.py
Executable file
@ -0,0 +1,7 @@
|
||||
from math import log, floor
|
||||
|
||||
def human_format(number):
|
||||
units = ["", " Thousand", " Million", " Billion", " Trillion", " Quatrillion"]
|
||||
k = 1000.0
|
||||
magnitude = int(floor(log(number, k)))
|
||||
return "%.2f%s" % (number / k ** magnitude, units[magnitude])
|
@ -1,7 +1,8 @@
|
||||
from django.urls import path
|
||||
from .views import MakeOrder, OrderView
|
||||
from .views import MakeOrder, OrderView, UserGenerator
|
||||
|
||||
urlpatterns = [
|
||||
path('make/', MakeOrder.as_view()),
|
||||
path('order/', OrderView.as_view()),
|
||||
path('usergen/', UserGenerator.as_view()),
|
||||
]
|
134
api/views.py
134
api/views.py
@ -1,12 +1,22 @@
|
||||
from rest_framework import status
|
||||
from rest_framework.views import APIView
|
||||
from rest_framework.response import Response
|
||||
|
||||
from django.contrib.auth import authenticate, login, logout
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
from .serializers import OrderSerializer, MakeOrderSerializer
|
||||
from .models import Order
|
||||
|
||||
from .nick_generator.nick_generator import NickGenerator
|
||||
from robohash import Robohash
|
||||
from scipy.stats import entropy
|
||||
from math import log2
|
||||
import numpy as np
|
||||
import hashlib
|
||||
from pathlib import Path
|
||||
from datetime import timedelta
|
||||
from django.utils import timezone
|
||||
|
||||
# Create your views here.
|
||||
|
||||
class MakeOrder(APIView):
|
||||
@ -23,9 +33,15 @@ class MakeOrder(APIView):
|
||||
premium = serializer.data.get('premium')
|
||||
satoshis = serializer.data.get('satoshis')
|
||||
|
||||
#################
|
||||
# TODO
|
||||
user = User.objects.get(id=request.user.id)
|
||||
|
||||
# query if the user is already a maker or taker, return error
|
||||
queryset = Order.objects.filter(maker=request.user.id)
|
||||
if queryset.exists():
|
||||
return Response({'Bad Request':'You are already maker of an order'},status=status.HTTP_400_BAD_REQUEST)
|
||||
queryset = Order.objects.filter(taker=request.user.id)
|
||||
if queryset.exists():
|
||||
return Response({'Bad Request':'You are already taker of an order'},status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
# Creates a new order in db
|
||||
order = Order(
|
||||
@ -34,7 +50,8 @@ class MakeOrder(APIView):
|
||||
amount=amount,
|
||||
payment_method=payment_method,
|
||||
premium=premium,
|
||||
satoshis=satoshis)
|
||||
satoshis=satoshis,
|
||||
maker=user)
|
||||
order.save()
|
||||
|
||||
if not serializer.is_valid():
|
||||
@ -58,24 +75,107 @@ class OrderView(APIView):
|
||||
print("It is only one!")
|
||||
order = order[0]
|
||||
data = self.serializer_class(order).data
|
||||
|
||||
# TODO
|
||||
# # Check if requester is participant in the order and add boolean to response
|
||||
|
||||
# user = authenticate(username=username, password=password)
|
||||
# data['is_participant'] = any(user.id == order.maker, user.id == order.taker)
|
||||
nickname = request.user.username
|
||||
|
||||
# if data['is_participant']:
|
||||
# return Response(data, status=status.HTTP_200_OK)
|
||||
# else:
|
||||
# # Non participants can't get access to the status or who is the taker
|
||||
# data.pop(['status'],['taker'])
|
||||
# return Response(data, status=status.HTTP_200_OK)
|
||||
# Check if requester is participant in the order and add boolean to response
|
||||
data['is_participant'] = (str(order.maker) == nickname or str(order.taker) == nickname)
|
||||
|
||||
return Response(data, status=status.HTTP_200_OK)
|
||||
if data['is_participant']:
|
||||
return Response(data, status=status.HTTP_200_OK)
|
||||
else:
|
||||
# Non participants should not see the status or who is the taker
|
||||
data.pop('status','taker')
|
||||
return Response(data, status=status.HTTP_200_OK)
|
||||
|
||||
return Response({'Order Not Found':'Invalid Order Id'},status=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
return Response({'Bad Request':'Order ID parameter not found in request'}, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
|
||||
class UserGenerator(APIView):
|
||||
lookup_url_kwarg = 'token'
|
||||
NickGen = NickGenerator(
|
||||
lang='English',
|
||||
use_adv=False,
|
||||
use_adj=True,
|
||||
use_noun=True,
|
||||
max_num=999)
|
||||
|
||||
def get(self,request):
|
||||
'''
|
||||
Get a new user derived from a high entropy token
|
||||
|
||||
- Request has a high-entropy token,
|
||||
- Generates new nickname and avatar.
|
||||
- Creates login credentials (new User object)
|
||||
Response with Avatar and Nickname.
|
||||
'''
|
||||
token = request.GET.get(self.lookup_url_kwarg)
|
||||
|
||||
# Compute token entropy
|
||||
value, counts = np.unique(list(token), return_counts=True)
|
||||
shannon_entropy = entropy(counts, base=62)
|
||||
bits_entropy = log2(len(value)**len(token))
|
||||
|
||||
# Start preparing payload
|
||||
context = {'token_shannon_entropy': shannon_entropy, 'token_bits_entropy': bits_entropy}
|
||||
|
||||
# Deny user gen if entropy below 128 bits or 0.7 shannon heterogeneity
|
||||
if bits_entropy < 128 or shannon_entropy < 0.7:
|
||||
context['bad_request'] = 'The token does not have enough entropy'
|
||||
return Response(context, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
# Hashes the token, only 1 iteration. Maybe more is better.
|
||||
hash = hashlib.sha256(str.encode(token)).hexdigest()
|
||||
|
||||
# generate nickname
|
||||
nickname = self.NickGen.short_from_SHA256(hash, max_length=18)[0]
|
||||
context['nickname'] = nickname
|
||||
|
||||
# generate avatar
|
||||
rh = Robohash(hash)
|
||||
rh.assemble(roboset='set1') # bgset='any' for backgrounds ON
|
||||
|
||||
avatars_path = Path('frontend/static/assets/avatars')
|
||||
avatars_path.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
with open(avatars_path.joinpath(nickname+".png"), "wb") as f:
|
||||
rh.img.save(f, format="png")
|
||||
|
||||
# Create new credentials if nickname is new
|
||||
if len(User.objects.filter(username=nickname)) == 0:
|
||||
User.objects.create_user(username=nickname, password=token, is_staff=False)
|
||||
user = authenticate(request, username=nickname, password=token)
|
||||
login(request, user)
|
||||
return Response(context, status=status.HTTP_201_CREATED)
|
||||
|
||||
else:
|
||||
user = authenticate(request, username=nickname, password=token)
|
||||
if user is not None:
|
||||
login(request, user)
|
||||
# Sends the welcome back message, only if created +30 mins ago
|
||||
if request.user.date_joined < (timezone.now()-timedelta(minutes=1)):
|
||||
context['found'] = 'We found your Robosat. Welcome back!'
|
||||
return Response(context, status=status.HTTP_202_ACCEPTED)
|
||||
else:
|
||||
# It is unlikely (1/20 Billions) but maybe the nickname is taken
|
||||
context['found'] = 'Bad luck, this nickname is taken'
|
||||
context['bad_request'] = 'Enter a different token'
|
||||
return Response(context, status=status.HTTP_403_FORBIDDEN)
|
||||
|
||||
|
||||
|
||||
def delete(self,request):
|
||||
user = User.objects.get(id = request.user.id)
|
||||
|
||||
# TO DO. Pressing give me another will delete the logged in user
|
||||
# However it might be a long time recovered user
|
||||
# Only delete if user live is < 5 minutes
|
||||
|
||||
if user is not None:
|
||||
logout(request)
|
||||
user.delete()
|
||||
return Response(status=status.HTTP_301_MOVED_PERMANENTLY)
|
||||
|
||||
return Response(status=status.HTTP_403_FORBIDDEN)
|
||||
|
||||
|
8
frontend/package-lock.json
generated
8
frontend/package-lock.json
generated
@ -2303,6 +2303,14 @@
|
||||
"semver": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"material-ui-image": {
|
||||
"version": "3.3.2",
|
||||
"resolved": "https://registry.npmjs.org/material-ui-image/-/material-ui-image-3.3.2.tgz",
|
||||
"integrity": "sha512-WE5QE0Rjdx9jPKuI0LWI7s8VQ9cifPIXObu8AUCRcidXGV3NqPI9C8c9A/C0MofKpkZ3buG8+IT9N7GgSmxXeg==",
|
||||
"requires": {
|
||||
"prop-types": "^15.5.8"
|
||||
}
|
||||
},
|
||||
"merge-stream": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
|
||||
|
@ -24,6 +24,7 @@
|
||||
"@babel/plugin-proposal-class-properties": "^7.16.7",
|
||||
"@material-ui/core": "^4.12.3",
|
||||
"@material-ui/icons": "^4.11.2",
|
||||
"material-ui-image": "^3.3.2",
|
||||
"react-router-dom": "^5.2.0"
|
||||
}
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ export default class App extends Component {
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div>
|
||||
<div className='appCenter'>
|
||||
<HomePage />
|
||||
</div>
|
||||
);
|
||||
|
@ -1,7 +1,7 @@
|
||||
import React, { Component } from "react";
|
||||
import { BrowserRouter as Router, Switch, Route, Link, Redirect } from "react-router-dom";
|
||||
|
||||
import NickGenPage from "./NickGenPage";
|
||||
import UserGenPage from "./UserGenPage";
|
||||
import LoginPage from "./LoginPage.js";
|
||||
import MakerPage from "./MakerPage";
|
||||
import BookPage from "./BookPage";
|
||||
@ -17,7 +17,7 @@ export default class HomePage extends Component {
|
||||
return (
|
||||
<Router >
|
||||
<Switch>
|
||||
<Route exact path='/' component={NickGenPage}/>
|
||||
<Route exact path='/' component={UserGenPage}/>
|
||||
<Route path='/home'><p>You are at the start page</p></Route>
|
||||
<Route path='/login'component={LoginPage}/>
|
||||
<Route path='/make' component={MakerPage}/>
|
||||
|
@ -1,11 +0,0 @@
|
||||
import React, { Component } from "react";
|
||||
|
||||
export default class NickGenPage extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
}
|
||||
|
||||
render() {
|
||||
return <p>This is the landing and user generator page</p>;
|
||||
}
|
||||
}
|
139
frontend/src/components/UserGenPage.js
Normal file
139
frontend/src/components/UserGenPage.js
Normal file
@ -0,0 +1,139 @@
|
||||
import React, { Component } from "react";
|
||||
import { Button , Grid, Typography, TextField, Select, FormHelperText, MenuItem, FormControl, Radio, FormControlLabel, RadioGroup, Menu} from "@material-ui/core"
|
||||
import { Link } from 'react-router-dom'
|
||||
import Image from 'material-ui-image'
|
||||
|
||||
function getCookie(name) {
|
||||
let cookieValue = null;
|
||||
if (document.cookie && document.cookie !== '') {
|
||||
const cookies = document.cookie.split(';');
|
||||
for (let i = 0; i < cookies.length; i++) {
|
||||
const cookie = cookies[i].trim();
|
||||
// Does this cookie string begin with the name we want?
|
||||
if (cookie.substring(0, name.length + 1) === (name + '=')) {
|
||||
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return cookieValue;
|
||||
}
|
||||
const csrftoken = getCookie('csrftoken');
|
||||
|
||||
export default class UserGenPage extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
token: this.genBase62Token(32),
|
||||
};
|
||||
this.getGeneratedUser();
|
||||
}
|
||||
|
||||
// sort of cryptographically strong function to generate Base62 token client-side
|
||||
genBase62Token(length)
|
||||
{
|
||||
return window.btoa(Array.from(
|
||||
window.crypto.getRandomValues(
|
||||
new Uint8Array(length * 2)))
|
||||
.map((b) => String.fromCharCode(b))
|
||||
.join("")).replace(/[+/]/g, "")
|
||||
.substring(0, length);
|
||||
}
|
||||
|
||||
getGeneratedUser() {
|
||||
fetch('/api/usergen' + '?token=' + this.state.token)
|
||||
.then((response) => response.json())
|
||||
.then((data) => {
|
||||
this.setState({
|
||||
nickname: data.nickname,
|
||||
bit_entropy: data.token_bits_entropy,
|
||||
avatar_url: 'static/assets/avatars/' + data.nickname + '.png',
|
||||
shannon_entropy: data.token_shannon_entropy,
|
||||
bad_request: data.bad_request,
|
||||
found: data.found,
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
delGeneratedUser() {
|
||||
const requestOptions = {
|
||||
method: 'DELETE',
|
||||
headers: {'Content-Type':'application/json', 'X-CSRFToken': csrftoken},
|
||||
};
|
||||
fetch("/api/usergen", requestOptions)
|
||||
.then((response) => response.json())
|
||||
.then((data) => console.log(data));
|
||||
}
|
||||
|
||||
// Fix next two handler functions so they work sequentially
|
||||
// at the moment they make the request generate a new user in parallel
|
||||
// to updating the token in the state. So the it works a bit weird.
|
||||
|
||||
handleAnotherButtonPressed=(e)=>{
|
||||
this.delGeneratedUser()
|
||||
this.setState({
|
||||
token: this.genBase62Token(32),
|
||||
})
|
||||
this.getGeneratedUser();
|
||||
}
|
||||
|
||||
handleChangeToken=(e)=>{
|
||||
this.delGeneratedUser()
|
||||
this.setState({
|
||||
token: e.target.value,
|
||||
})
|
||||
this.getGeneratedUser();
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<Grid container spacing={1}>
|
||||
<Grid item xs={12} align="center">
|
||||
<TextField
|
||||
error={this.state.bad_request}
|
||||
label='Token - Store safely'
|
||||
required='true'
|
||||
value={this.state.token}
|
||||
variant='standard'
|
||||
helperText={this.state.bad_request}
|
||||
size='small'
|
||||
// multiline = {true}
|
||||
onChange={this.handleChangeToken}
|
||||
/>
|
||||
</Grid>
|
||||
<Grid item xs={12} align="center">
|
||||
<div style={{ maxWidth: 200, maxHeight: 200 }}>
|
||||
<Image className='newAvatar'
|
||||
disableError='true'
|
||||
cover='true'
|
||||
color='null'
|
||||
src={this.state.avatar_url}
|
||||
/>
|
||||
</div>
|
||||
</Grid>
|
||||
<Grid item xs={12} align="center">
|
||||
<Typography component="h5" variant="h5">
|
||||
<b>{this.state.nickname ? "⚡"+this.state.nickname+"⚡" : ""}</b>
|
||||
</Typography>
|
||||
</Grid>
|
||||
{
|
||||
this.state.found ?
|
||||
<Grid item xs={12} align="center">
|
||||
<Typography component="subtitle2" variant="subtitle2" color='primary'>
|
||||
{this.state.found}<br/>
|
||||
</Typography>
|
||||
<Button variant='contained' color='primary' to='/home' component={Link}>Cool!</Button>
|
||||
</Grid>
|
||||
:
|
||||
<Grid item xs={12} align="center">
|
||||
<Button variant='contained' color='primary' to='/home' component={Link}>Take This Robosat!</Button>
|
||||
</Grid>
|
||||
}
|
||||
|
||||
<Grid item xs={12} align="center">
|
||||
<Button variant='contained' to='/' component={Link} onClick={this.handleAnotherButtonPressed}>Give Me Another</Button>
|
||||
</Grid>
|
||||
</Grid>
|
||||
);
|
||||
}
|
||||
}
|
15
frontend/src/components/getCookieToken.js
Normal file
15
frontend/src/components/getCookieToken.js
Normal file
@ -0,0 +1,15 @@
|
||||
function getCookie(name) {
|
||||
let cookieValue = null;
|
||||
if (document.cookie && document.cookie !== '') {
|
||||
const cookies = document.cookie.split(';');
|
||||
for (let i = 0; i < cookies.length; i++) {
|
||||
const cookie = cookies[i].trim();
|
||||
// Does this cookie string begin with the name we want?
|
||||
if (cookie.substring(0, name.length + 1) === (name + '=')) {
|
||||
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return cookieValue;
|
||||
}
|
@ -16,5 +16,20 @@ body {
|
||||
#app {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.appCenter {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%,-50%);
|
||||
}
|
||||
|
||||
.newAvatar {
|
||||
background-color:white;
|
||||
border-radius: 50%;
|
||||
border: 2px solid #555;
|
||||
filter: drop-shadow(1px 1px 1px #000000);
|
||||
height: 200px;
|
||||
width: 200px;
|
||||
}
|
File diff suppressed because one or more lines are too long
@ -1,727 +0,0 @@
|
||||
/*!**********************!*\
|
||||
!*** ./src/index.js ***!
|
||||
\**********************/
|
||||
|
||||
/*!*******************************!*\
|
||||
!*** ./src/components/App.js ***!
|
||||
\*******************************/
|
||||
|
||||
/*!************************************!*\
|
||||
!*** ./src/components/BookPage.js ***!
|
||||
\************************************/
|
||||
|
||||
/*!************************************!*\
|
||||
!*** ./src/components/HomePage.js ***!
|
||||
\************************************/
|
||||
|
||||
/*!*************************************!*\
|
||||
!*** ./node_modules/react/index.js ***!
|
||||
\*************************************/
|
||||
|
||||
/*!*************************************!*\
|
||||
!*** ./src/components/LoginPage.js ***!
|
||||
\*************************************/
|
||||
|
||||
/*!*************************************!*\
|
||||
!*** ./src/components/MakerPage.js ***!
|
||||
\*************************************/
|
||||
|
||||
/*!*************************************!*\
|
||||
!*** ./src/components/OrderPage.js ***!
|
||||
\*************************************/
|
||||
|
||||
/*!***************************************!*\
|
||||
!*** ./node_modules/isarray/index.js ***!
|
||||
\***************************************/
|
||||
|
||||
/*!***************************************!*\
|
||||
!*** ./src/components/NickGenPage.js ***!
|
||||
\***************************************/
|
||||
|
||||
/*!****************************************!*\
|
||||
!*** ./node_modules/react-is/index.js ***!
|
||||
\****************************************/
|
||||
|
||||
/*!*****************************************!*\
|
||||
!*** ./node_modules/react-dom/index.js ***!
|
||||
\*****************************************/
|
||||
|
||||
/*!*****************************************!*\
|
||||
!*** ./node_modules/scheduler/index.js ***!
|
||||
\*****************************************/
|
||||
|
||||
/*!******************************************!*\
|
||||
!*** ./node_modules/clsx/dist/clsx.m.js ***!
|
||||
\******************************************/
|
||||
|
||||
/*!******************************************!*\
|
||||
!*** ./node_modules/jss/dist/jss.esm.js ***!
|
||||
\******************************************/
|
||||
|
||||
/*!******************************************!*\
|
||||
!*** ./node_modules/prop-types/index.js ***!
|
||||
\******************************************/
|
||||
|
||||
/*!*******************************************!*\
|
||||
!*** ./src/components/WaitingRoomPage.js ***!
|
||||
\*******************************************/
|
||||
|
||||
/*!*********************************************!*\
|
||||
!*** ./node_modules/history/esm/history.js ***!
|
||||
\*********************************************/
|
||||
|
||||
/*!*********************************************!*\
|
||||
!*** ./node_modules/object-assign/index.js ***!
|
||||
\*********************************************/
|
||||
|
||||
/*!**********************************************!*\
|
||||
!*** ./node_modules/path-to-regexp/index.js ***!
|
||||
\**********************************************/
|
||||
|
||||
/*!***************************************************!*\
|
||||
!*** ./node_modules/is-in-browser/dist/module.js ***!
|
||||
\***************************************************/
|
||||
|
||||
/*!****************************************************!*\
|
||||
!*** ./node_modules/hyphenate-style-name/index.js ***!
|
||||
\****************************************************/
|
||||
|
||||
/*!*****************************************************!*\
|
||||
!*** ./node_modules/value-equal/esm/value-equal.js ***!
|
||||
\*****************************************************/
|
||||
|
||||
/*!*******************************************************!*\
|
||||
!*** ./node_modules/@material-ui/system/esm/merge.js ***!
|
||||
\*******************************************************/
|
||||
|
||||
/*!*******************************************************!*\
|
||||
!*** ./node_modules/react-router/esm/react-router.js ***!
|
||||
\*******************************************************/
|
||||
|
||||
/*!********************************************************!*\
|
||||
!*** ./node_modules/css-vendor/dist/css-vendor.esm.js ***!
|
||||
\********************************************************/
|
||||
|
||||
/*!********************************************************!*\
|
||||
!*** ./node_modules/react/cjs/react.production.min.js ***!
|
||||
\********************************************************/
|
||||
|
||||
/*!*********************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/Grid/Grid.js ***!
|
||||
\*********************************************************/
|
||||
|
||||
/*!*********************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/Grow/Grow.js ***!
|
||||
\*********************************************************/
|
||||
|
||||
/*!*********************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/List/List.js ***!
|
||||
\*********************************************************/
|
||||
|
||||
/*!*********************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/Menu/Menu.js ***!
|
||||
\*********************************************************/
|
||||
|
||||
/*!*********************************************************!*\
|
||||
!*** ./node_modules/@material-ui/system/esm/memoize.js ***!
|
||||
\*********************************************************/
|
||||
|
||||
/*!*********************************************************!*\
|
||||
!*** ./node_modules/@material-ui/system/esm/spacing.js ***!
|
||||
\*********************************************************/
|
||||
|
||||
/*!**********************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/colors/red.js ***!
|
||||
\**********************************************************/
|
||||
|
||||
/*!**********************************************************!*\
|
||||
!*** ./node_modules/@material-ui/utils/esm/deepmerge.js ***!
|
||||
\**********************************************************/
|
||||
|
||||
/*!***********************************************************!*\
|
||||
!*** ./node_modules/@babel/runtime/helpers/esm/typeof.js ***!
|
||||
\***********************************************************/
|
||||
|
||||
/*!***********************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/Input/Input.js ***!
|
||||
\***********************************************************/
|
||||
|
||||
/*!***********************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/Modal/Modal.js ***!
|
||||
\***********************************************************/
|
||||
|
||||
/*!***********************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/Paper/Paper.js ***!
|
||||
\***********************************************************/
|
||||
|
||||
/*!***********************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/Radio/Radio.js ***!
|
||||
\***********************************************************/
|
||||
|
||||
/*!***********************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/colors/blue.js ***!
|
||||
\***********************************************************/
|
||||
|
||||
/*!***********************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/colors/grey.js ***!
|
||||
\***********************************************************/
|
||||
|
||||
/*!***********************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/colors/pink.js ***!
|
||||
\***********************************************************/
|
||||
|
||||
/*!***********************************************************!*\
|
||||
!*** ./node_modules/react-transition-group/esm/config.js ***!
|
||||
\***********************************************************/
|
||||
|
||||
/*!************************************************************!*\
|
||||
!*** ./node_modules/@babel/runtime/helpers/esm/extends.js ***!
|
||||
\************************************************************/
|
||||
|
||||
/*!************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/colors/green.js ***!
|
||||
\************************************************************/
|
||||
|
||||
/*!************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/styles/shape.js ***!
|
||||
\************************************************************/
|
||||
|
||||
/*!************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/utils/setRef.js ***!
|
||||
\************************************************************/
|
||||
|
||||
/*!************************************************************!*\
|
||||
!*** ./node_modules/tiny-warning/dist/tiny-warning.esm.js ***!
|
||||
\************************************************************/
|
||||
|
||||
/*!*************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/Button/Button.js ***!
|
||||
\*************************************************************/
|
||||
|
||||
/*!*************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/Portal/Portal.js ***!
|
||||
\*************************************************************/
|
||||
|
||||
/*!*************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/Select/Select.js ***!
|
||||
\*************************************************************/
|
||||
|
||||
/*!*************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/colors/common.js ***!
|
||||
\*************************************************************/
|
||||
|
||||
/*!*************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/colors/indigo.js ***!
|
||||
\*************************************************************/
|
||||
|
||||
/*!*************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/colors/orange.js ***!
|
||||
\*************************************************************/
|
||||
|
||||
/*!*************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/styles/zIndex.js ***!
|
||||
\*************************************************************/
|
||||
|
||||
/*!*************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/system/esm/breakpoints.js ***!
|
||||
\*************************************************************/
|
||||
|
||||
/*!*************************************************************!*\
|
||||
!*** ./node_modules/prop-types/factoryWithThrowingShims.js ***!
|
||||
\*************************************************************/
|
||||
|
||||
/*!*************************************************************!*\
|
||||
!*** ./node_modules/prop-types/lib/ReactPropTypesSecret.js ***!
|
||||
\*************************************************************/
|
||||
|
||||
/*!**************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/styles/shadows.js ***!
|
||||
\**************************************************************/
|
||||
|
||||
/*!**************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/utils/debounce.js ***!
|
||||
\**************************************************************/
|
||||
|
||||
/*!**************************************************************!*\
|
||||
!*** ./node_modules/react-is/cjs/react-is.production.min.js ***!
|
||||
\**************************************************************/
|
||||
|
||||
/*!***************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/InputBase/utils.js ***!
|
||||
\***************************************************************/
|
||||
|
||||
/*!***************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/Popover/Popover.js ***!
|
||||
\***************************************************************/
|
||||
|
||||
/*!***************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/SvgIcon/SvgIcon.js ***!
|
||||
\***************************************************************/
|
||||
|
||||
/*!***************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/styles/useTheme.js ***!
|
||||
\***************************************************************/
|
||||
|
||||
/*!***************************************************************!*\
|
||||
!*** ./node_modules/react-router-dom/esm/react-router-dom.js ***!
|
||||
\***************************************************************/
|
||||
|
||||
/*!***************************************************************!*\
|
||||
!*** ./node_modules/react-transition-group/esm/Transition.js ***!
|
||||
\***************************************************************/
|
||||
|
||||
/*!***************************************************************!*\
|
||||
!*** ./node_modules/resolve-pathname/esm/resolve-pathname.js ***!
|
||||
\***************************************************************/
|
||||
|
||||
/*!****************************************************************!*\
|
||||
!*** ./node_modules/@babel/runtime/helpers/esm/createClass.js ***!
|
||||
\****************************************************************/
|
||||
|
||||
/*!****************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/List/ListContext.js ***!
|
||||
\****************************************************************/
|
||||
|
||||
/*!****************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/utils/capitalize.js ***!
|
||||
\****************************************************************/
|
||||
|
||||
/*!****************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/utils/useForkRef.js ***!
|
||||
\****************************************************************/
|
||||
|
||||
/*!****************************************************************!*\
|
||||
!*** ./node_modules/react-dom/cjs/react-dom.production.min.js ***!
|
||||
\****************************************************************/
|
||||
|
||||
/*!****************************************************************!*\
|
||||
!*** ./node_modules/scheduler/cjs/scheduler.production.min.js ***!
|
||||
\****************************************************************/
|
||||
|
||||
/*!****************************************************************!*\
|
||||
!*** ./node_modules/tiny-invariant/dist/tiny-invariant.esm.js ***!
|
||||
\****************************************************************/
|
||||
|
||||
/*!*****************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/ButtonBase/Ripple.js ***!
|
||||
\*****************************************************************/
|
||||
|
||||
/*!*****************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/ListItem/ListItem.js ***!
|
||||
\*****************************************************************/
|
||||
|
||||
/*!*****************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/MenuItem/MenuItem.js ***!
|
||||
\*****************************************************************/
|
||||
|
||||
/*!*****************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/MenuList/MenuList.js ***!
|
||||
\*****************************************************************/
|
||||
|
||||
/*!*****************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/styles/withStyles.js ***!
|
||||
\*****************************************************************/
|
||||
|
||||
/*!*****************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/transitions/utils.js ***!
|
||||
\*****************************************************************/
|
||||
|
||||
/*!*****************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/utils/ownerWindow.js ***!
|
||||
\*****************************************************************/
|
||||
|
||||
/*!******************************************************************!*\
|
||||
!*** ./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js ***!
|
||||
\******************************************************************/
|
||||
|
||||
/*!******************************************************************!*\
|
||||
!*** ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js ***!
|
||||
\******************************************************************/
|
||||
|
||||
/*!******************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/Modal/ModalManager.js ***!
|
||||
\******************************************************************/
|
||||
|
||||
/*!******************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/Select/SelectInput.js ***!
|
||||
\******************************************************************/
|
||||
|
||||
/*!******************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/styles/createTheme.js ***!
|
||||
\******************************************************************/
|
||||
|
||||
/*!******************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/styles/transitions.js ***!
|
||||
\******************************************************************/
|
||||
|
||||
/*!******************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/utils/isMuiElement.js ***!
|
||||
\******************************************************************/
|
||||
|
||||
/*!******************************************************************!*\
|
||||
!*** ./node_modules/mini-create-react-context/dist/esm/index.js ***!
|
||||
\******************************************************************/
|
||||
|
||||
/*!******************************************************************!*\
|
||||
!*** ./node_modules/react-router/node_modules/react-is/index.js ***!
|
||||
\******************************************************************/
|
||||
|
||||
/*!*******************************************************************!*\
|
||||
!*** ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js ***!
|
||||
\*******************************************************************/
|
||||
|
||||
/*!*******************************************************************!*\
|
||||
!*** ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***!
|
||||
\*******************************************************************/
|
||||
|
||||
/*!*******************************************************************!*\
|
||||
!*** ./node_modules/@babel/runtime/helpers/esm/defineProperty.js ***!
|
||||
\*******************************************************************/
|
||||
|
||||
/*!*******************************************************************!*\
|
||||
!*** ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js ***!
|
||||
\*******************************************************************/
|
||||
|
||||
/*!*******************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/FormGroup/FormGroup.js ***!
|
||||
\*******************************************************************/
|
||||
|
||||
/*!*******************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/FormLabel/FormLabel.js ***!
|
||||
\*******************************************************************/
|
||||
|
||||
/*!*******************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/InputBase/InputBase.js ***!
|
||||
\*******************************************************************/
|
||||
|
||||
/*!*******************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/TextField/TextField.js ***!
|
||||
\*******************************************************************/
|
||||
|
||||
/*!*******************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/internal/SwitchBase.js ***!
|
||||
\*******************************************************************/
|
||||
|
||||
/*!*******************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/styles/createMixins.js ***!
|
||||
\*******************************************************************/
|
||||
|
||||
/*!*******************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/styles/defaultTheme.js ***!
|
||||
\*******************************************************************/
|
||||
|
||||
/*!*******************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/utils/createSvgIcon.js ***!
|
||||
\*******************************************************************/
|
||||
|
||||
/*!*******************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/utils/ownerDocument.js ***!
|
||||
\*******************************************************************/
|
||||
|
||||
/*!*******************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/utils/useControlled.js ***!
|
||||
\*******************************************************************/
|
||||
|
||||
/*!*******************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/styles/esm/useTheme/useTheme.js ***!
|
||||
\*******************************************************************/
|
||||
|
||||
/*!********************************************************************!*\
|
||||
!*** ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***!
|
||||
\********************************************************************/
|
||||
|
||||
/*!********************************************************************!*\
|
||||
!*** ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js ***!
|
||||
\********************************************************************/
|
||||
|
||||
/*!********************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/Modal/SimpleBackdrop.js ***!
|
||||
\********************************************************************/
|
||||
|
||||
/*!********************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/styles/createPalette.js ***!
|
||||
\********************************************************************/
|
||||
|
||||
/*!********************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/styles/createSpacing.js ***!
|
||||
\********************************************************************/
|
||||
|
||||
/*!********************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/utils/unstable_useId.js ***!
|
||||
\********************************************************************/
|
||||
|
||||
/*!********************************************************************!*\
|
||||
!*** ./node_modules/react-transition-group/esm/TransitionGroup.js ***!
|
||||
\********************************************************************/
|
||||
|
||||
/*!*********************************************************************!*\
|
||||
!*** ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***!
|
||||
\*********************************************************************/
|
||||
|
||||
/*!*********************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/ButtonBase/ButtonBase.js ***!
|
||||
\*********************************************************************/
|
||||
|
||||
/*!*********************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/IconButton/IconButton.js ***!
|
||||
\*********************************************************************/
|
||||
|
||||
/*!*********************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/InputLabel/InputLabel.js ***!
|
||||
\*********************************************************************/
|
||||
|
||||
/*!*********************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/Radio/RadioButtonIcon.js ***!
|
||||
\*********************************************************************/
|
||||
|
||||
/*!*********************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/RadioGroup/RadioGroup.js ***!
|
||||
\*********************************************************************/
|
||||
|
||||
/*!*********************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/Typography/Typography.js ***!
|
||||
\*********************************************************************/
|
||||
|
||||
/*!*********************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/styles/esm/jssPreset/jssPreset.js ***!
|
||||
\*********************************************************************/
|
||||
|
||||
/*!**********************************************************************!*\
|
||||
!*** ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js ***!
|
||||
\**********************************************************************/
|
||||
|
||||
/*!**********************************************************************!*\
|
||||
!*** ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js ***!
|
||||
\**********************************************************************/
|
||||
|
||||
/*!**********************************************************************!*\
|
||||
!*** ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js ***!
|
||||
\**********************************************************************/
|
||||
|
||||
/*!**********************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/ButtonBase/TouchRipple.js ***!
|
||||
\**********************************************************************/
|
||||
|
||||
/*!**********************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/utils/getScrollbarSize.js ***!
|
||||
\**********************************************************************/
|
||||
|
||||
/*!**********************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/utils/useEventCallback.js ***!
|
||||
\**********************************************************************/
|
||||
|
||||
/*!**********************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/styles/esm/ThemeProvider/nested.js ***!
|
||||
\**********************************************************************/
|
||||
|
||||
/*!**********************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/utils/esm/formatMuiErrorMessage.js ***!
|
||||
\**********************************************************************/
|
||||
|
||||
/*!**********************************************************************!*\
|
||||
!*** ./node_modules/jss-plugin-global/dist/jss-plugin-global.esm.js ***!
|
||||
\**********************************************************************/
|
||||
|
||||
/*!**********************************************************************!*\
|
||||
!*** ./node_modules/jss-plugin-nested/dist/jss-plugin-nested.esm.js ***!
|
||||
\**********************************************************************/
|
||||
|
||||
/*!***********************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/FilledInput/FilledInput.js ***!
|
||||
\***********************************************************************/
|
||||
|
||||
/*!***********************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/FormControl/FormControl.js ***!
|
||||
\***********************************************************************/
|
||||
|
||||
/*!***********************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/styles/colorManipulator.js ***!
|
||||
\***********************************************************************/
|
||||
|
||||
/*!***********************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/styles/createTypography.js ***!
|
||||
\***********************************************************************/
|
||||
|
||||
/*!***********************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/utils/useIsFocusVisible.js ***!
|
||||
\***********************************************************************/
|
||||
|
||||
/*!***********************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/styles/esm/makeStyles/makeStyles.js ***!
|
||||
\***********************************************************************/
|
||||
|
||||
/*!***********************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/styles/esm/useTheme/ThemeContext.js ***!
|
||||
\***********************************************************************/
|
||||
|
||||
/*!***********************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/styles/esm/withStyles/withStyles.js ***!
|
||||
\***********************************************************************/
|
||||
|
||||
/*!***********************************************************************!*\
|
||||
!*** ./node_modules/react-transition-group/esm/utils/ChildMapping.js ***!
|
||||
\***********************************************************************/
|
||||
|
||||
/*!************************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/RadioGroup/useRadioGroup.js ***!
|
||||
\************************************************************************/
|
||||
|
||||
/*!************************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/styles/createBreakpoints.js ***!
|
||||
\************************************************************************/
|
||||
|
||||
/*!*************************************************************************!*\
|
||||
!*** ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js ***!
|
||||
\*************************************************************************/
|
||||
|
||||
/*!*************************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/NativeSelect/NativeSelect.js ***!
|
||||
\*************************************************************************/
|
||||
|
||||
/*!*************************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/styles/esm/makeStyles/indexCounter.js ***!
|
||||
\*************************************************************************/
|
||||
|
||||
/*!**************************************************************************!*\
|
||||
!*** ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js ***!
|
||||
\**************************************************************************/
|
||||
|
||||
/*!**************************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/FormControl/useFormControl.js ***!
|
||||
\**************************************************************************/
|
||||
|
||||
/*!**************************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/styles/esm/makeStyles/multiKeyStore.js ***!
|
||||
\**************************************************************************/
|
||||
|
||||
/*!***************************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/OutlinedInput/OutlinedInput.js ***!
|
||||
\***************************************************************************/
|
||||
|
||||
/*!***************************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/utils/createChainedFunction.js ***!
|
||||
\***************************************************************************/
|
||||
|
||||
/*!***************************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/styles/esm/mergeClasses/mergeClasses.js ***!
|
||||
\***************************************************************************/
|
||||
|
||||
/*!***************************************************************************!*\
|
||||
!*** ./node_modules/react-transition-group/esm/TransitionGroupContext.js ***!
|
||||
\***************************************************************************/
|
||||
|
||||
/*!****************************************************************************!*\
|
||||
!*** ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js ***!
|
||||
\****************************************************************************/
|
||||
|
||||
/*!****************************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/FormControl/formControlState.js ***!
|
||||
\****************************************************************************/
|
||||
|
||||
/*!****************************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/OutlinedInput/NotchedOutline.js ***!
|
||||
\****************************************************************************/
|
||||
|
||||
/*!****************************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/RadioGroup/RadioGroupContext.js ***!
|
||||
\****************************************************************************/
|
||||
|
||||
/*!****************************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/styles/esm/getStylesCreator/noopTheme.js ***!
|
||||
\****************************************************************************/
|
||||
|
||||
/*!*****************************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/FormHelperText/FormHelperText.js ***!
|
||||
\*****************************************************************************/
|
||||
|
||||
/*!*****************************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/styles/esm/getThemeProps/getThemeProps.js ***!
|
||||
\*****************************************************************************/
|
||||
|
||||
/*!*****************************************************************************!*\
|
||||
!*** ./node_modules/hoist-non-react-statics/node_modules/react-is/index.js ***!
|
||||
\*****************************************************************************/
|
||||
|
||||
/*!******************************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/FormControl/FormControlContext.js ***!
|
||||
\******************************************************************************/
|
||||
|
||||
/*!******************************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/NativeSelect/NativeSelectInput.js ***!
|
||||
\******************************************************************************/
|
||||
|
||||
/*!******************************************************************************!*\
|
||||
!*** ./node_modules/jss-plugin-camel-case/dist/jss-plugin-camel-case.esm.js ***!
|
||||
\******************************************************************************/
|
||||
|
||||
/*!******************************************************************************!*\
|
||||
!*** ./node_modules/jss-plugin-props-sort/dist/jss-plugin-props-sort.esm.js ***!
|
||||
\******************************************************************************/
|
||||
|
||||
/*!*******************************************************************************!*\
|
||||
!*** ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***!
|
||||
\*******************************************************************************/
|
||||
|
||||
/*!*******************************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/styles/esm/StylesProvider/StylesProvider.js ***!
|
||||
\*******************************************************************************/
|
||||
|
||||
/*!********************************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/internal/svg-icons/ArrowDropDown.js ***!
|
||||
\********************************************************************************/
|
||||
|
||||
/*!*********************************************************************************!*\
|
||||
!*** ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js ***!
|
||||
\*********************************************************************************/
|
||||
|
||||
/*!*********************************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/FormControlLabel/FormControlLabel.js ***!
|
||||
\*********************************************************************************/
|
||||
|
||||
/*!*********************************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/TextareaAutosize/TextareaAutosize.js ***!
|
||||
\*********************************************************************************/
|
||||
|
||||
/*!**********************************************************************************!*\
|
||||
!*** ./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js ***!
|
||||
\**********************************************************************************/
|
||||
|
||||
/*!**********************************************************************************!*\
|
||||
!*** ./node_modules/jss-plugin-default-unit/dist/jss-plugin-default-unit.esm.js ***!
|
||||
\**********************************************************************************/
|
||||
|
||||
/*!***********************************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/styles/esm/getStylesCreator/getStylesCreator.js ***!
|
||||
\***********************************************************************************/
|
||||
|
||||
/*!*************************************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/Unstable_TrapFocus/Unstable_TrapFocus.js ***!
|
||||
\*************************************************************************************/
|
||||
|
||||
/*!*************************************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/internal/svg-icons/RadioButtonChecked.js ***!
|
||||
\*************************************************************************************/
|
||||
|
||||
/*!***************************************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/core/esm/internal/svg-icons/RadioButtonUnchecked.js ***!
|
||||
\***************************************************************************************/
|
||||
|
||||
/*!****************************************************************************************!*\
|
||||
!*** ./node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.esm.js ***!
|
||||
\****************************************************************************************/
|
||||
|
||||
/*!****************************************************************************************!*\
|
||||
!*** ./node_modules/react-router/node_modules/react-is/cjs/react-is.production.min.js ***!
|
||||
\****************************************************************************************/
|
||||
|
||||
/*!************************************************************************************************!*\
|
||||
!*** ./node_modules/jss-plugin-rule-value-function/dist/jss-plugin-rule-value-function.esm.js ***!
|
||||
\************************************************************************************************/
|
||||
|
||||
/*!*************************************************************************************************!*\
|
||||
!*** ./node_modules/@material-ui/styles/esm/createGenerateClassName/createGenerateClassName.js ***!
|
||||
\*************************************************************************************************/
|
||||
|
||||
/*!***************************************************************************************************!*\
|
||||
!*** ./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js ***!
|
||||
\***************************************************************************************************/
|
6
setup.md
6
setup.md
@ -38,6 +38,11 @@ python3 manage.py migrate
|
||||
python3 manage.py runserver
|
||||
```
|
||||
|
||||
### Install python dependencies
|
||||
```
|
||||
pip install robohash
|
||||
```
|
||||
|
||||
## React development environment
|
||||
### Install npm
|
||||
`sudo apt install npm`
|
||||
@ -53,6 +58,7 @@ npm install @material-ui/core
|
||||
npm install @babel/plugin-proposal-class-properties
|
||||
npm install react-router-dom@5.2.0
|
||||
npm install @material-ui/icons
|
||||
npm install material-ui-image
|
||||
```
|
||||
|
||||
### Launch the React render
|
||||
|
Loading…
Reference in New Issue
Block a user