Add nick generator and robohash avatar generator

This commit is contained in:
Reckless_Satoshi 2022-01-02 07:19:49 -08:00
parent 6d6072777b
commit f0ac03e519
No known key found for this signature in database
GPG Key ID: 9C4585B561315571
15 changed files with 89489 additions and 733 deletions

2
.gitignore vendored
View File

@ -637,4 +637,4 @@ FodyWeavers.xsd
# Django
*migrations*
frontend/static/frontend*
frontend/static/frontend/main*

File diff suppressed because it is too large Load Diff

View 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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View 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

File diff suppressed because it is too large Load Diff

View 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
View 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])

View File

@ -7,6 +7,9 @@ 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
# Create your views here.
class MakeOrder(APIView):
@ -79,3 +82,24 @@ class OrderView(APIView):
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 based on 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.
'''
pass

View File

@ -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}/>

View File

@ -1,6 +1,6 @@
import React, { Component } from "react";
export default class NickGenPage extends Component {
export default class UserGenPage extends Component {
constructor(props) {
super(props);
}

File diff suppressed because one or more lines are too long

View File

@ -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 ***!
\***************************************************************************************************/

View File

@ -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`