diff options
author | 2018-04-15 18:47:58 +0200 | |
---|---|---|
committer | 2018-04-15 17:47:58 +0100 | |
commit | f5e7c358761ee49da45933e73b943fb1eb66c030 (patch) | |
tree | cde9eed9f010caba22842d39af33385aae411a45 | |
parent | Added an About category with Partners view (#1pv7h) (#50) (diff) |
Initial data for tables and refactoring the dev-mode database handling to be similar to prod-mode. (#53)
* Changed the dev-mode logic to be the same as prod for creating new tables if they don't exist. Also added a new feature where a table can be initialized with data if you create a JSON file in the pysite/database/table_init/ folder and fill it with a list of dicts where each dict represents a row in your table. Included a hiphoppers json so that I can actually test if it works in production. It will only init the table if the table is empty.
* Not sure if this will solve it, but I think so.
* Renamed the tables and primary keys, and alphabetized the dict. Now complies with the gdudes holy wishes.
-rw-r--r-- | gunicorn_config.py | 12 | ||||
-rw-r--r-- | pysite/__init__.py | 2 | ||||
-rw-r--r-- | pysite/database.py | 70 | ||||
-rw-r--r-- | pysite/database/table_init/hiphoppers.json | 1298 | ||||
-rw-r--r-- | pysite/mixins.py | 4 | ||||
-rw-r--r-- | pysite/views/api/bot/tags.py | 1 | ||||
-rw-r--r-- | pysite/views/api/bot/user.py | 1 | ||||
-rw-r--r-- | pysite/views/wiki/edit.py | 2 | ||||
-rw-r--r-- | pysite/views/wiki/page.py | 2 | ||||
-rw-r--r-- | pysite/views/wiki/source.py | 2 |
10 files changed, 1373 insertions, 21 deletions
diff --git a/gunicorn_config.py b/gunicorn_config.py index f863edd4..5b9f9055 100644 --- a/gunicorn_config.py +++ b/gunicorn_config.py @@ -12,6 +12,16 @@ def when_ready(server=None): from pysite.database import RethinkDB db = RethinkDB(loop_type=None) + db.conn = db.get_connection() + + # Create any table that doesn't exist created = db.create_tables() + if created: + tables = ", ".join([f"{table}" for table in created]) + output(f"Created the following tables: {tables}") - output(f"Created {created} tables.") + # Init the tables that require initialization + initialized = db.init_tables() + if initialized: + tables = ", ".join([f"{table} ({count} items)" for table, count in initialized.items()]) + output(f"Initialized the following tables: {tables}") diff --git a/pysite/__init__.py b/pysite/__init__.py index 3e11a776..82abf499 100644 --- a/pysite/__init__.py +++ b/pysite/__init__.py @@ -13,7 +13,7 @@ from pysite.logs import NonPicklingSocketHandler # region Logging # Get the log level from environment -log_level = os.environ.get("LOG_LEVEL", "info").upper() +log_level = os.environ.get("LOG_LEVEL", "debug").upper() if hasattr(logging, log_level): log_level = getattr(logging, log_level) diff --git a/pysite/database.py b/pysite/database.py index 82e1e84e..3ecdf53b 100644 --- a/pysite/database.py +++ b/pysite/database.py @@ -1,4 +1,5 @@ # coding=utf-8 +import json import logging import os from typing import Any, Callable, Dict, Iterator, List, Optional, Union @@ -8,13 +9,16 @@ from flask import abort from rethinkdb.ast import RqlMethodQuery, Table, UserError from rethinkdb.net import DefaultConnection +from pysite.constants import DEBUG_MODE + ALL_TABLES = { # table: primary_key - + "hiphopify": "user_id", + "hiphopify_namelist": "name", "oauth_data": "id", "tags": "tag_name", "users": "user_id", - "wiki": "slug", + "wiki": "slug" } @@ -30,22 +34,74 @@ class RethinkDB: if loop_type: rethinkdb.set_loop_type(loop_type) - with self.get_connection(connect_database=False) as conn: + with self.get_connection() as self.conn: try: - rethinkdb.db_create(self.database).run(conn) + rethinkdb.db_create(self.database).run(self.conn) self.log.debug(f"Database created: '{self.database}'") except rethinkdb.RqlRuntimeError: self.log.debug(f"Database found: '{self.database}'") - def create_tables(self) -> int: - created = 0 + if DEBUG_MODE: + # Create any table that doesn't exist + created = self.create_tables() + if created: + tables = ", ".join([f"{table}" for table in created]) + self.log.debug(f"Created the following tables: {tables}") + + # Init the tables that require initialization + initialized = self.init_tables() + if initialized: + tables = ", ".join([f"{table} ({count} items)" for table, count in initialized.items()]) + self.log.debug(f"Initialized the following tables: {tables}") + + def create_tables(self) -> List[str]: + """ + Creates whichever tables exist in the ALL_TABLES + constant if they don't already exist in the database. + + :return: a list of the tables that were created. + """ + created = [] for table, primary_key in ALL_TABLES.items(): if self.create_table(table, primary_key): - created += 1 + created.append(table) return created + def init_tables(self) -> Dict[str, int]: + """ + If the table is empty, and there is a corresponding JSON file with data, + then we fill the table with the data in the JSON file. + + The JSON files are contained inside of pysite/database/table_init/ + :return: + """ + + initialized = {} + + for table, primary_key in ALL_TABLES.items(): + + # If the table is empty + if not self.pluck(table, primary_key): + + # And a corresponding JSON file exists + if os.path.isfile(f"pysite/database/table_init/{table}.json"): + + # Load in all the data in that file. + with open(f"pysite/database/table_init/{table}.json") as json_file: + table_data = json.load(json_file) + + for row in table_data: + self.insert( + table, + row + ) + + initialized[table] = len(table_data) + + return initialized + def get_connection(self, connect_database: bool = True) -> DefaultConnection: """ Grab a connection to the RethinkDB server, optionally without selecting a database diff --git a/pysite/database/table_init/hiphoppers.json b/pysite/database/table_init/hiphoppers.json new file mode 100644 index 00000000..d408f5b3 --- /dev/null +++ b/pysite/database/table_init/hiphoppers.json @@ -0,0 +1,1298 @@ +[ + {"hiphop_name": "100 Kila"}, + {"hiphop_name": "100s"}, + {"hiphop_name": "12 Gauge"}, + {"hiphop_name": "2 Chainz"}, + {"hiphop_name": "2 Pistols"}, + {"hiphop_name": "2$ Fabo"}, + {"hiphop_name": "21 Savage"}, + {"hiphop_name": "2Mex"}, + {"hiphop_name": "360"}, + {"hiphop_name": "40 Glocc"}, + {"hiphop_name": "50 Cent"}, + {"hiphop_name": "6lack"}, + {"hiphop_name": "6ix9ine"}, + {"hiphop_name": "The 6th Letter"}, + {"hiphop_name": "9th Wonder"}, + {"hiphop_name": "Andre 3000"}, + {"hiphop_name": "Big Boi"}, + {"hiphop_name": "A.CHAL"}, + {"hiphop_name": "A+"}, + {"hiphop_name": "A-Q"}, + {"hiphop_name": "Arabian Prince"}, + {"hiphop_name": "Ab-Soul"}, + {"hiphop_name": "A Boogie wit da Hoodie"}, + {"hiphop_name": "Abstract Rude"}, + {"hiphop_name": "Ace Hood"}, + {"hiphop_name": "Aceyalone"}, + {"hiphop_name": "Action Bronson"}, + {"hiphop_name": "Adam Saleh"}, + {"hiphop_name": "Aesop Rock"}, + {"hiphop_name": "Afrika Bambaataa"}, + {"hiphop_name": "Afroman"}, + {"hiphop_name": "Afu-Ra"}, + {"hiphop_name": "Agallah"}, + {"hiphop_name": "Ahmad"}, + {"hiphop_name": "Ajs Nigrutin"}, + {"hiphop_name": "Akala"}, + {"hiphop_name": "Akinyele"}, + {"hiphop_name": "Akir"}, + {"hiphop_name": "Akon"}, + {"hiphop_name": "The Alchemist"}, + {"hiphop_name": "Ali Vegas"}, + {"hiphop_name": "Alpha"}, + {"hiphop_name": "AMG"}, + {"hiphop_name": "Amil"}, + {"hiphop_name": "Aminé"}, + {"hiphop_name": "Amir Obè"}, + {"hiphop_name": "Ampichino"}, + {"hiphop_name": "Anderson .Paak"}, + {"hiphop_name": "André 3000"}, + {"hiphop_name": "Andre Nickatina"}, + {"hiphop_name": "Andy Mineo"}, + {"hiphop_name": "Angel Haze"}, + {"hiphop_name": "Angie Martinez"}, + {"hiphop_name": "Ant"}, + {"hiphop_name": "Ant Banks"}, + {"hiphop_name": "Antoinette"}, + {"hiphop_name": "Anybody Killa"}, + {"hiphop_name": "Apache"}, + {"hiphop_name": "Apathy"}, + {"hiphop_name": "Arin Hanson"}, + {"hiphop_name": "A$AP Ferg"}, + {"hiphop_name": "A$AP Nast"}, + {"hiphop_name": "A$AP Rocky"}, + {"hiphop_name": "A$AP Yams"}, + {"hiphop_name": "A$ton Matthews"}, + {"hiphop_name": "Asher Roth"}, + {"hiphop_name": "Astronautalis"}, + {"hiphop_name": "Awol One"}, + {"hiphop_name": "Awkwafina"}, + {"hiphop_name": "AZ"}, + {"hiphop_name": "Azealia Banks"}, + {"hiphop_name": "Big Daddy Kane"}, + {"hiphop_name": "Busta Rhymes"}, + {"hiphop_name": "B-Legit"}, + {"hiphop_name": "B-Real"}, + {"hiphop_name": "B.G."}, + {"hiphop_name": "B.G. Knocc Out"}, + {"hiphop_name": "B.o.B"}, + {"hiphop_name": "Baby Bash"}, + {"hiphop_name": "Baby Boy da Prince"}, + {"hiphop_name": "Baby D"}, + {"hiphop_name": "Bad Azz"}, + {"hiphop_name": "Badshah"}, + {"hiphop_name": "Baeza"}, + {"hiphop_name": "Bahamadia"}, + {"hiphop_name": "Baka Not Nice"}, + {"hiphop_name": "Bang Yong-guk"}, + {"hiphop_name": "Bangladesh"}, + {"hiphop_name": "Bas"}, + {"hiphop_name": "Battlecat"}, + {"hiphop_name": "Beanie Sigel"}, + {"hiphop_name": "Becky G"}, + {"hiphop_name": "Benny Blanco"}, + {"hiphop_name": "Beenzino"}, + {"hiphop_name": "Benzino"}, + {"hiphop_name": "Big Boi"}, + {"hiphop_name": "Big Daddy Kane"}, + {"hiphop_name": "Big Ed"}, + {"hiphop_name": "Big Gipp"}, + {"hiphop_name": "Big Hawk"}, + {"hiphop_name": "Big K.R.I.T."}, + {"hiphop_name": "Big Kuntry King"}, + {"hiphop_name": "Big L"}, + {"hiphop_name": "Big Lurch"}, + {"hiphop_name": "Big Mello"}, + {"hiphop_name": "Big Mike"}, + {"hiphop_name": "Big Moe"}, + {"hiphop_name": "Big Noyd"}, + {"hiphop_name": "Big Pokey"}, + {"hiphop_name": "Big Pooh"}, + {"hiphop_name": "Big Pun"}, + {"hiphop_name": "Big Reese"}, + {"hiphop_name": "Big Scoob"}, + {"hiphop_name": "Big Smo"}, + {"hiphop_name": "Big Sean"}, + {"hiphop_name": "Big Shaq"}, + {"hiphop_name": "Big Shug"}, + {"hiphop_name": "Big Syke"}, + {"hiphop_name": "Bigg D"}, + {"hiphop_name": "Billy Woods"}, + {"hiphop_name": "Birdman"}, + {"hiphop_name": "Bishop Nehru"}, + {"hiphop_name": "Biz Markie"}, + {"hiphop_name": "Bizarre"}, + {"hiphop_name": "Bugz"}, + {"hiphop_name": "Bizzy"}, + {"hiphop_name": "Bizzy Bone"}, + {"hiphop_name": "BJ the Chicago Kid"}, + {"hiphop_name": "Black Milk"}, + {"hiphop_name": "Black Rob"}, + {"hiphop_name": "Black Thought"}, + {"hiphop_name": "Blade Icewood"}, + {"hiphop_name": "Blaq Poet"}, + {"hiphop_name": "Blaze Ya Dead Homie"}, + {"hiphop_name": "BlocBoy JB"}, + {"hiphop_name": "Blood Raw"}, + {"hiphop_name": "Blu"}, + {"hiphop_name": "Bob Doe"}, + {"hiphop_name": "Bobby Brackins"}, + {"hiphop_name": "Bobby Creekwater"}, + {"hiphop_name": "Bobby Shmurda"}, + {"hiphop_name": "Bohemia"}, + {"hiphop_name": "Boi-1da"}, + {"hiphop_name": "Boldy James"}, + {"hiphop_name": "Bone Crusher"}, + {"hiphop_name": "Bones"}, + {"hiphop_name": "Booba"}, + {"hiphop_name": "Boondox"}, + {"hiphop_name": "Boosie Badazz"}, + {"hiphop_name": "Boss"}, + {"hiphop_name": "Bow Wow"}, + {"hiphop_name": "Braille"}, + {"hiphop_name": "Brandun DeShay"}, + {"hiphop_name": "Brianna Perry"}, + {"hiphop_name": "Brisco"}, + {"hiphop_name": "Brotha Lynch Hung"}, + {"hiphop_name": "Bruno Mars"}, + {"hiphop_name": "Brother Ali"}, + {"hiphop_name": "Bryson Tiller"}, + {"hiphop_name": "Bubba Sparxxx"}, + {"hiphop_name": "Buckshot"}, + {"hiphop_name": "Buckwild"}, + {"hiphop_name": "Bumpy Knuckles"}, + {"hiphop_name": "Bun B"}, + {"hiphop_name": "Busdriver"}, + {"hiphop_name": "Bushwick Bill"}, + {"hiphop_name": "Busta Rhymes"}, + {"hiphop_name": "Busy Bee Starski"}, + {"hiphop_name": "Butch Cassidy"}, + {"hiphop_name": "Common"}, + {"hiphop_name": "C-Bo"}, + {"hiphop_name": "C-Murder"}, + {"hiphop_name": "C-Note"}, + {"hiphop_name": "C-Rayz Walz"}, + {"hiphop_name": "Cage"}, + {"hiphop_name": "Cam'ron"}, + {"hiphop_name": "Canibus"}, + {"hiphop_name": "Capital Steez"}, + {"hiphop_name": "Capone"}, + {"hiphop_name": "Cappadonna"}, + {"hiphop_name": "Cardi B"}, + {"hiphop_name": "Casey Veggies"}, + {"hiphop_name": "Cash Out"}, + {"hiphop_name": "Cashis"}, + {"hiphop_name": "Caskey"}, + {"hiphop_name": "Casper Nyovest"}, + {"hiphop_name": "Cassidy"}, + {"hiphop_name": "Cazwell"}, + {"hiphop_name": "CeeLo Green"}, + {"hiphop_name": "Cellski"}, + {"hiphop_name": "Celly Cel"}, + {"hiphop_name": "Celph Titled"}, + {"hiphop_name": "Cesar Comanche"}, + {"hiphop_name": "Ceza"}, + {"hiphop_name": "Chamillionaire"}, + {"hiphop_name": "Chance the Rapper"}, + {"hiphop_name": "Chanel West Coast"}, + {"hiphop_name": "Channel 7"}, + {"hiphop_name": "Charizma"}, + {"hiphop_name": "Charles Hamilton"}, + {"hiphop_name": "Charli Baltimore"}, + {"hiphop_name": "Chevy Woods"}, + {"hiphop_name": "Chi Ali"}, + {"hiphop_name": "Chali 2na"}, + {"hiphop_name": "Chiddy Bang"}, + {"hiphop_name": "Chief Keef"}, + {"hiphop_name": "Childish Gambino"}, + {"hiphop_name": "Chill Rob G"}, + {"hiphop_name": "Chingy"}, + {"hiphop_name": "Chingo Bling"}, + {"hiphop_name": "Chino XL"}, + {"hiphop_name": "Chinx"}, + {"hiphop_name": "Chip"}, + {"hiphop_name": "Choice"}, + {"hiphop_name": "Choppa"}, + {"hiphop_name": "Chris Brown"}, + {"hiphop_name": "Chris Webby"}, + {"hiphop_name": "Christopher Martin"}, + {"hiphop_name": "Christopher Reid"}, + {"hiphop_name": "Chubb Rock"}, + {"hiphop_name": "CJ Fly"}, + {"hiphop_name": "CL"}, + {"hiphop_name": "CL Smooth"}, + {"hiphop_name": "Classified"}, + {"hiphop_name": "Clinton Sparks"}, + {"hiphop_name": "Clyde Carson"}, + {"hiphop_name": "Cold 187um"}, + {"hiphop_name": "Common"}, + {"hiphop_name": "Consequence"}, + {"hiphop_name": "Cool Breeze"}, + {"hiphop_name": "Cool C"}, + {"hiphop_name": "Coolio"}, + {"hiphop_name": "Copywrite"}, + {"hiphop_name": "Cormega"}, + {"hiphop_name": "Cory Gunz"}, + {"hiphop_name": "Cordaro Stewart"}, + {"hiphop_name": "Count Bass D"}, + {"hiphop_name": "The Coup"}, + {"hiphop_name": "Craig Mack"}, + {"hiphop_name": "Crime Boss"}, + {"hiphop_name": "Criminal Manne"}, + {"hiphop_name": "Crooked I"}, + {"hiphop_name": "Crucial Star"}, + {"hiphop_name": "Cupcakke"}, + {"hiphop_name": "Currensy"}, + {"hiphop_name": "Curtiss King"}, + {"hiphop_name": "Cyhi the Prynce"}, + {"hiphop_name": "Del Tha Funkee Homosapien"}, + {"hiphop_name": "Dr. Dre"}, + {"hiphop_name": "D'Angelo"}, + {"hiphop_name": "D'banj"}, + {"hiphop_name": "D-Loc"}, + {"hiphop_name": "D-Nice"}, + {"hiphop_name": "D-Pryde"}, + {"hiphop_name": "The D.O.C."}, + {"hiphop_name": "Da Brat"}, + {"hiphop_name": "Da$h"}, + {"hiphop_name": "Da'unda'dogg"}, + {"hiphop_name": "Daddy-O"}, + {"hiphop_name": "Dae Dae"}, + {"hiphop_name": "Damu the Fudgemunk"}, + {"hiphop_name": "Dan Bull"}, + {"hiphop_name": "Dana Dane"}, + {"hiphop_name": "Danny Boy"}, + {"hiphop_name": "Danny Brown"}, + {"hiphop_name": "Dappy"}, + {"hiphop_name": "Dave East"}, + {"hiphop_name": "Daveed Diggs"}, + {"hiphop_name": "David Banner"}, + {"hiphop_name": "David Dallas"}, + {"hiphop_name": "David Rush"}, + {"hiphop_name": "David Stones"}, + {"hiphop_name": "Daz Dillinger"}, + {"hiphop_name": "Dazzie Dee"}, + {"hiphop_name": "Dee Barnes"}, + {"hiphop_name": "Dee Dee King"}, + {"hiphop_name": "Dej Loaf"}, + {"hiphop_name": "Delyric Oracle"}, + {"hiphop_name": "Del the Funky Homosapien"}, + {"hiphop_name": "Demrick"}, + {"hiphop_name": "Deniro Farrar"}, + {"hiphop_name": "Denzel Curry"}, + {"hiphop_name": "Derek Minor"}, + {"hiphop_name": "Desiigner"}, + {"hiphop_name": "Detail"}, + {"hiphop_name": "Deuce"}, + {"hiphop_name": "Dev"}, + {"hiphop_name": "Devin the Dude"}, + {"hiphop_name": "Devlin"}, + {"hiphop_name": "Diabolic"}, + {"hiphop_name": "Diamond"}, + {"hiphop_name": "Diamond D"}, + {"hiphop_name": "Diggy Simmons"}, + {"hiphop_name": "Dillon Cooper"}, + {"hiphop_name": "Disco D"}, + {"hiphop_name": "Disco King Mario"}, + {"hiphop_name": "Dizzee Rascal"}, + {"hiphop_name": "Dizzy Wright"}, + {"hiphop_name": "DJ Cash Money"}, + {"hiphop_name": "DJ Casper"}, + {"hiphop_name": "DJ Clay"}, + {"hiphop_name": "DJ Clue?"}, + {"hiphop_name": "DJ Drama"}, + {"hiphop_name": "DJ Felli Fel"}, + {"hiphop_name": "DJ Fuze"}, + {"hiphop_name": "DJ Green Lantern"}, + {"hiphop_name": "DJ Head"}, + {"hiphop_name": "DJ Hurricane"}, + {"hiphop_name": "DJ Kay Slay"}, + {"hiphop_name": "DJ Khaled"}, + {"hiphop_name": "DJ Krush"}, + {"hiphop_name": "DJ Mustard"}, + {"hiphop_name": "DJ Paul"}, + {"hiphop_name": "DJ Pooh"}, + {"hiphop_name": "DJ Premier"}, + {"hiphop_name": "DJ Quik"}, + {"hiphop_name": "DJ Run"}, + {"hiphop_name": "DJ Screw"}, + {"hiphop_name": "DJ Shadow"}, + {"hiphop_name": "DJ Yella"}, + {"hiphop_name": "DMC"}, + {"hiphop_name": "DMX"}, + {"hiphop_name": "Doap Nixon"}, + {"hiphop_name": "Doe B"}, + {"hiphop_name": "Dok2"}, + {"hiphop_name": "Dolla"}, + {"hiphop_name": "Dom Kennedy"}, + {"hiphop_name": "Dominique Young Unique"}, + {"hiphop_name": "Domino"}, + {"hiphop_name": "Domo Genesis"}, + {"hiphop_name": "Don Cannon"}, + {"hiphop_name": "Donnis"}, + {"hiphop_name": "Dorrough"}, + {"hiphop_name": "Doseone"}, + {"hiphop_name": "Doug E. Fresh"}, + {"hiphop_name": "Doughbeezy"}, + {"hiphop_name": "Dr. Dre"}, + {"hiphop_name": "Drag-On"}, + {"hiphop_name": "Drake"}, + {"hiphop_name": "Dres"}, + {"hiphop_name": "Dresta"}, + {"hiphop_name": "Drew Deezy"}, + {"hiphop_name": "Driicky Graham"}, + {"hiphop_name": "Droop-E"}, + {"hiphop_name": "Dru Down"}, + {"hiphop_name": "Drumma Boy"}, + {"hiphop_name": "Dumbfoundead"}, + {"hiphop_name": "Duncan Mighty"}, + {"hiphop_name": "Eve"}, + {"hiphop_name": "E-40"}, + {"hiphop_name": "E.D.I. Mean"}, + {"hiphop_name": "E-Sens"}, + {"hiphop_name": "E.S.G."}, + {"hiphop_name": "Earl Sweatshirt"}, + {"hiphop_name": "Easy Mo Bee"}, + {"hiphop_name": "Eazy-E"}, + {"hiphop_name": "Ed O.G."}, + {"hiphop_name": "Edo Maajka"}, + {"hiphop_name": "El Da Sensei"}, + {"hiphop_name": "El-P"}, + {"hiphop_name": "Elephant Man"}, + {"hiphop_name": "Elzhi"}, + {"hiphop_name": "Emcee N.I.C.E."}, + {"hiphop_name": "Eminem"}, + {"hiphop_name": "Eric Biddines"}, + {"hiphop_name": "Erick Arc Elliott"}, + {"hiphop_name": "Erick Sermon"}, + {"hiphop_name": "Eric Stanley"}, + {"hiphop_name": "Esham"}, + {"hiphop_name": "Esoteric"}, + {"hiphop_name": "Eve"}, + {"hiphop_name": "Everlast"}, + {"hiphop_name": "Evidence"}, + {"hiphop_name": "Eyedea"}, + {"hiphop_name": "Ghostface Killah"}, + {"hiphop_name": "Fabolous"}, + {"hiphop_name": "Fabri Fibra"}, + {"hiphop_name": "Fam-Lay"}, + {"hiphop_name": "Famous Dex"}, + {"hiphop_name": "Fashawn"}, + {"hiphop_name": "Fat Joe"}, + {"hiphop_name": "Fat Pat"}, + {"hiphop_name": "Fat Trel"}, + {"hiphop_name": "Fatboi"}, + {"hiphop_name": "Father MC"}, + {"hiphop_name": "Fatman Scoop"}, + {"hiphop_name": "Fergie"}, + {"hiphop_name": "Fetty Wap"}, + {"hiphop_name": "Fiend"}, + {"hiphop_name": "FLAME"}, + {"hiphop_name": "Flavor Flav"}, + {"hiphop_name": "Flavour N'abania"}, + {"hiphop_name": "Flo Rida"}, + {"hiphop_name": "Flying Lotus"}, + {"hiphop_name": "Focus..."}, + {"hiphop_name": "Fonzworth Bentley"}, + {"hiphop_name": "Fort Minor"}, + {"hiphop_name": "Foxx"}, + {"hiphop_name": "Foxy Brown"}, + {"hiphop_name": "Frank Ocean"}, + {"hiphop_name": "Frankie J"}, + {"hiphop_name": "Frayser Boy"}, + {"hiphop_name": "Freak Nasty"}, + {"hiphop_name": "Freaky Tah"}, + {"hiphop_name": "Fred Durst"}, + {"hiphop_name": "Freddie Foxxx"}, + {"hiphop_name": "Freddie Gibbs"}, + {"hiphop_name": "Fredo Santana"}, + {"hiphop_name": "Fredro Starr"}, + {"hiphop_name": "Fredwreck"}, + {"hiphop_name": "Free"}, + {"hiphop_name": "Freekey Zekey"}, + {"hiphop_name": "Freeway"}, + {"hiphop_name": "French Montana"}, + {"hiphop_name": "Frenkie"}, + {"hiphop_name": "Fresh Kid Ice"}, + {"hiphop_name": "Froggy Fresh"}, + {"hiphop_name": "Frost"}, + {"hiphop_name": "Full Blooded"}, + {"hiphop_name": "Funkmaster Flex"}, + {"hiphop_name": "Future"}, + {"hiphop_name": "Grandmaster Caz"}, + {"hiphop_name": "Grandmaster Flash"}, + {"hiphop_name": "G-Dragon"}, + {"hiphop_name": "G-Eazy"}, + {"hiphop_name": "G. Dep"}, + {"hiphop_name": "G Herbo"}, + {"hiphop_name": "Gaeko"}, + {"hiphop_name": "The Game"}, + {"hiphop_name": "Gang Starr"}, + {"hiphop_name": "Gangsta Blac"}, + {"hiphop_name": "Gangsta Boo"}, + {"hiphop_name": "Ganksta N-I-P"}, + {"hiphop_name": "Gary"}, + {"hiphop_name": "Gee Money"}, + {"hiphop_name": "General Woo"}, + {"hiphop_name": "Ghostface Killah"}, + {"hiphop_name": "Giggs"}, + {"hiphop_name": "Gilbere Forte"}, + {"hiphop_name": "Glasses Malone"}, + {"hiphop_name": "GLC"}, + {"hiphop_name": "Goldie Loc"}, + {"hiphop_name": "GoldLink"}, + {"hiphop_name": "Gorilla Zoe"}, + {"hiphop_name": "Grafh"}, + {"hiphop_name": "Grand Puba"}, + {"hiphop_name": "Grandmaster Caz"}, + {"hiphop_name": "Grandmaster Flash"}, + {"hiphop_name": "Greydon Square"}, + {"hiphop_name": "Grieves"}, + {"hiphop_name": "Gucci Mane"}, + {"hiphop_name": "Gudda Gudda"}, + {"hiphop_name": "Guerilla Black"}, + {"hiphop_name": "Guilty Simpson"}, + {"hiphop_name": "Gunplay"}, + {"hiphop_name": "Guru"}, + {"hiphop_name": "GZA"}, + {"hiphop_name": "Half a Mill"}, + {"hiphop_name": "Hard Kaur"}, + {"hiphop_name": "Hasan Salaam"}, + {"hiphop_name": "Havoc"}, + {"hiphop_name": "Heavy D"}, + {"hiphop_name": "Hefe Heetroc"}, + {"hiphop_name": "Heize"}, + {"hiphop_name": "Hemlock Ernst"}, + {"hiphop_name": "Hi-C"}, + {"hiphop_name": "Hi-Tek"}, + {"hiphop_name": "Hit-Boy"}, + {"hiphop_name": "Hittman"}, + {"hiphop_name": "Hodgy Beats"}, + {"hiphop_name": "Honey Cocaine"}, + {"hiphop_name": "Hoodie Allen"}, + {"hiphop_name": "Hopsin"}, + {"hiphop_name": "Hot Dollar"}, + {"hiphop_name": "Huey"}, + {"hiphop_name": "Hurricane Chris"}, + {"hiphop_name": "Hurricane G"}, + {"hiphop_name": "Hush"}, + {"hiphop_name": "Hussein Fatal"}, + {"hiphop_name": "Ice Cube"}, + {"hiphop_name": "I-20"}, + {"hiphop_name": "Iamsu!"}, + {"hiphop_name": "Ice Cube"}, + {"hiphop_name": "Ice-T"}, + {"hiphop_name": "IDK"}, + {"hiphop_name": "Iggy Azalea"}, + {"hiphop_name": "IHeartMemphis"}, + {"hiphop_name": "Ill Bill"}, + {"hiphop_name": "Illmind"}, + {"hiphop_name": "ILoveMakonnen"}, + {"hiphop_name": "Immortal Technique"}, + {"hiphop_name": "Imran Khan"}, + {"hiphop_name": "Indo G"}, + {"hiphop_name": "Inspectah Deck"}, + {"hiphop_name": "Isaiah Rashad"}, + {"hiphop_name": "Iyanya"}, + {"hiphop_name": "Iyaz"}, + {"hiphop_name": "Jay-Z"}, + {"hiphop_name": "Kanye West"}, + {"hiphop_name": "Kendrick Lamar"}, + {"hiphop_name": "KRS-One"}, + {"hiphop_name": "J Dilla"}, + {"hiphop_name": "J-Diggs"}, + {"hiphop_name": "J-Kwon"}, + {"hiphop_name": "J-Son"}, + {"hiphop_name": "J. Cole"}, + {"hiphop_name": "J. Stalin"}, + {"hiphop_name": "J. Valentine"}, + {"hiphop_name": "J.I.D"}, + {"hiphop_name": "J.R. Rotem"}, + {"hiphop_name": "J.R. Writer"}, + {"hiphop_name": "Ja Rule"}, + {"hiphop_name": "Jack Parow"}, + {"hiphop_name": "The Jacka"}, + {"hiphop_name": "Jackie Hill-Perry"}, + {"hiphop_name": "Jadakiss"}, + {"hiphop_name": "Jaden Smith"}, + {"hiphop_name": "Jae Millz"}, + {"hiphop_name": "Jahlil Beats"}, + {"hiphop_name": "Jamie Madrox"}, + {"hiphop_name": "Jahred"}, + {"hiphop_name": "Jake Miller"}, + {"hiphop_name": "Jake One"}, + {"hiphop_name": "Jam Master Jay"}, + {"hiphop_name": "Jamal"}, + {"hiphop_name": "Jamal Woolard"}, + {"hiphop_name": "Jamie Foxx"}, + {"hiphop_name": "Jarren Benton"}, + {"hiphop_name": "Jay Burna"}, + {"hiphop_name": "Jay Critch"}, + {"hiphop_name": "Jay Electronica"}, + {"hiphop_name": "Jay Park"}, + {"hiphop_name": "Jay Rock"}, + {"hiphop_name": "Jay Z"}, + {"hiphop_name": "Jayo Felony"}, + {"hiphop_name": "Jaz-O"}, + {"hiphop_name": "Jazz Cartier"}, + {"hiphop_name": "Jazze Pha"}, + {"hiphop_name": "Jean Grae"}, + {"hiphop_name": "Jeremiah Jae"}, + {"hiphop_name": "Jeremih"}, + {"hiphop_name": "Jermaine Dupri"}, + {"hiphop_name": "Jeru the Damaja"}, + {"hiphop_name": "Jewell"}, + {"hiphop_name": "Jibbs"}, + {"hiphop_name": "Jim Jones"}, + {"hiphop_name": "Jim Jonsin"}, + {"hiphop_name": "Jipsta"}, + {"hiphop_name": "Jme"}, + {"hiphop_name": "Joe Budden"}, + {"hiphop_name": "Joell Ortiz"}, + {"hiphop_name": "Joey Badass"}, + {"hiphop_name": "John Cena"}, + {"hiphop_name": "Johnny J"}, + {"hiphop_name": "Johntá Austin"}, + {"hiphop_name": "Joji Miller"}, + {"hiphop_name": "Jon Connor"}, + {"hiphop_name": "Joyner Lucas"}, + {"hiphop_name": "JT Money"}, + {"hiphop_name": "JT the Bigga Figga"}, + {"hiphop_name": "Juelz Santana"}, + {"hiphop_name": "Juice (Đus)"}, + {"hiphop_name": "Juicy J"}, + {"hiphop_name": "Junhyung"}, + {"hiphop_name": "Jus Allah"}, + {"hiphop_name": "Just Ice"}, + {"hiphop_name": "Juvenile"}, + {"hiphop_name": "Kurtis Blow"}, + {"hiphop_name": "Lauryn Hill"}, + {"hiphop_name": "K Camp"}, + {"hiphop_name": "K'naan"}, + {"hiphop_name": "K-Dee"}, + {"hiphop_name": "K-OS"}, + {"hiphop_name": "K-Solo"}, + {"hiphop_name": "K.E. on the Track"}, + {"hiphop_name": "K7"}, + {"hiphop_name": "Kafani"}, + {"hiphop_name": "Kam"}, + {"hiphop_name": "Kangol Kid"}, + {"hiphop_name": "Kanye West"}, + {"hiphop_name": "Kap G"}, + {"hiphop_name": "Kardinal Offishall"}, + {"hiphop_name": "Kastro"}, + {"hiphop_name": "Kat Dahlia"}, + {"hiphop_name": "Katie Got Bandz"}, + {"hiphop_name": "KB"}, + {"hiphop_name": "Keak da Sneak"}, + {"hiphop_name": "Keith Ape"}, + {"hiphop_name": "Keith Murray"}, + {"hiphop_name": "Malcolm David Kelley"}, + {"hiphop_name": "Kendrick Lamar"}, + {"hiphop_name": "Kent Jones"}, + {"hiphop_name": "Kerser"}, + {"hiphop_name": "Kevin Abstract"}, + {"hiphop_name": "Kevin Gates"}, + {"hiphop_name": "Kevin McCall"}, + {"hiphop_name": "Khia"}, + {"hiphop_name": "Khleo"}, + {"hiphop_name": "Kia Shine"}, + {"hiphop_name": "Kid Capri"}, + {"hiphop_name": "Kid Cudi"}, + {"hiphop_name": "Kid Frost"}, + {"hiphop_name": "Kid Ink"}, + {"hiphop_name": "Kid Rock"}, + {"hiphop_name": "Kid Sister"}, + {"hiphop_name": "Kidd Kidd"}, + {"hiphop_name": "Killah Priest"}, + {"hiphop_name": "Killer Mike"}, + {"hiphop_name": "Kilo Ali"}, + {"hiphop_name": "King Chip"}, + {"hiphop_name": "King Gordy"}, + {"hiphop_name": "King L"}, + {"hiphop_name": "King Tee"}, + {"hiphop_name": "Kirk Knight"}, + {"hiphop_name": "Kirko Bangz"}, + {"hiphop_name": "Kitty"}, + {"hiphop_name": "KJ-52"}, + {"hiphop_name": "Knero"}, + {"hiphop_name": "Knoc-turn'al"}, + {"hiphop_name": "KO"}, + {"hiphop_name": "KOHH"}, + {"hiphop_name": "Kodak Black"}, + {"hiphop_name": "Kokane"}, + {"hiphop_name": "Kool A.D"}, + {"hiphop_name": "Kool G Rap"}, + {"hiphop_name": "Kool Keith"}, + {"hiphop_name": "Kool Moe Dee"}, + {"hiphop_name": "Koolade"}, + {"hiphop_name": "Krayzie Bone"}, + {"hiphop_name": "Kreayshawn"}, + {"hiphop_name": "Krizz Kaliko"}, + {"hiphop_name": "KRS-One"}, + {"hiphop_name": "Kung Fu Vampire"}, + {"hiphop_name": "Kurious"}, + {"hiphop_name": "Kurtis Blow"}, + {"hiphop_name": "Kurupt"}, + {"hiphop_name": "Kutt Calhoun"}, + {"hiphop_name": "Kwamé"}, + {"hiphop_name": "Kyle"}, + {"hiphop_name": "Lil' Kim"}, + {"hiphop_name": "Lil Wayne"}, + {"hiphop_name": "L.T. Hutton"}, + {"hiphop_name": "La Chat"}, + {"hiphop_name": "La the Darkman"}, + {"hiphop_name": "Lady Luck"}, + {"hiphop_name": "The Lady of Rage"}, + {"hiphop_name": "Lakey The Kid"}, + {"hiphop_name": "Lakim Shabazz"}, + {"hiphop_name": "Lakutis"}, + {"hiphop_name": "Large Professor"}, + {"hiphop_name": "Lauryn Hill"}, + {"hiphop_name": "Lazarus"}, + {"hiphop_name": "LE"}, + {"hiphop_name": "Lecrae"}, + {"hiphop_name": "Left Brain"}, + {"hiphop_name": "Lex Luger"}, + {"hiphop_name": "Lil' B"}, + {"hiphop_name": "Lil' Bibby"}, + {"hiphop_name": "Lil' Debbie"}, + {"hiphop_name": "Lil' Dicky"}, + {"hiphop_name": "Lil' Durk"}, + {"hiphop_name": "Lil' Eazy-E"}, + {"hiphop_name": "Lil' Flip"}, + {"hiphop_name": "Lil' Herb"}, + {"hiphop_name": "Lil' Jon"}, + {"hiphop_name": "Lil' Mama"}, + {"hiphop_name": "Lil' Peep"}, + {"hiphop_name": "Lil' Phat"}, + {"hiphop_name": "Lil' Pump"}, + {"hiphop_name": "Lil' Reese"}, + {"hiphop_name": "Lil' Ric"}, + {"hiphop_name": "Lil' Ru"}, + {"hiphop_name": "Lil' Scrappy"}, + {"hiphop_name": "Lil' Skies"}, + {"hiphop_name": "Lil' Twist"}, + {"hiphop_name": "Lil' Uzi Vert"}, + {"hiphop_name": "Lil' Wayne"}, + {"hiphop_name": "Lil' Wyte"}, + {"hiphop_name": "Lil' Xan"}, + {"hiphop_name": "Lil' Yachty"}, + {"hiphop_name": "Lil' Zane"}, + {"hiphop_name": "Lil' Cease"}, + {"hiphop_name": "Lil' Fizz"}, + {"hiphop_name": "Lil' Flip"}, + {"hiphop_name": "Lil' Keke"}, + {"hiphop_name": "Lil' Kim"}, + {"hiphop_name": "Lil' O"}, + {"hiphop_name": "Lil' Ronnie"}, + {"hiphop_name": "Lil' Troy"}, + {"hiphop_name": "Lil' Wil"}, + {"hiphop_name": "Lin Que"}, + {"hiphop_name": "Lisa Lopes"}, + {"hiphop_name": "LL Cool J"}, + {"hiphop_name": "Lloyd Banks"}, + {"hiphop_name": "Locksmith"}, + {"hiphop_name": "Logic"}, + {"hiphop_name": "LoLa Monroe"}, + {"hiphop_name": "London On Da Track"}, + {"hiphop_name": "Loon"}, + {"hiphop_name": "Lord Finesse"}, + {"hiphop_name": "Lord Have Mercy"}, + {"hiphop_name": "Lord Infamous"}, + {"hiphop_name": "Lord Jamar"}, + {"hiphop_name": "Los"}, + {"hiphop_name": "Louis Logic"}, + {"hiphop_name": "Lovebug Starski"}, + {"hiphop_name": "LoveRance"}, + {"hiphop_name": "Lowkey"}, + {"hiphop_name": "LRoc"}, + {"hiphop_name": "Ludacris"}, + {"hiphop_name": "Luis Resto"}, + {"hiphop_name": "Luni Coleone"}, + {"hiphop_name": "Lupe Fiasco"}, + {"hiphop_name": "Luther Campbell"}, + {"hiphop_name": "MC Lyte"}, + {"hiphop_name": "Melle Mel"}, + {"hiphop_name": "MF Doom"}, + {"hiphop_name": "M Trill"}, + {"hiphop_name": "M-1"}, + {"hiphop_name": "M.I.A."}, + {"hiphop_name": "Mac"}, + {"hiphop_name": "Mac Dre"}, + {"hiphop_name": "Mac Lethal"}, + {"hiphop_name": "Mac Mall"}, + {"hiphop_name": "Mac Miller"}, + {"hiphop_name": "Mac Minister"}, + {"hiphop_name": "Machine Gun Kelly"}, + {"hiphop_name": "Mack 10"}, + {"hiphop_name": "Mack Maine"}, + {"hiphop_name": "Macklemore"}, + {"hiphop_name": "Mad Lion"}, + {"hiphop_name": "Madchild"}, + {"hiphop_name": "Madlib"}, + {"hiphop_name": "Maejor Ali"}, + {"hiphop_name": "Magic"}, + {"hiphop_name": "Magneto Dayo"}, + {"hiphop_name": "Magnolia Shorty"}, + {"hiphop_name": "Maino"}, + {"hiphop_name": "Manafest"}, + {"hiphop_name": "Mann"}, + {"hiphop_name": "Mannie Fresh"}, + {"hiphop_name": "Marčelo"}, + {"hiphop_name": "Mariah Carey"}, + {"hiphop_name": "Mark Battles"}, + {"hiphop_name": "Marky Mark"}, + {"hiphop_name": "Marley Marl"}, + {"hiphop_name": "Marvaless"}, + {"hiphop_name": "Marz"}, + {"hiphop_name": "Mase"}, + {"hiphop_name": "Masspike Miles"}, + {"hiphop_name": "Masta Ace"}, + {"hiphop_name": "Masta Killa"}, + {"hiphop_name": "Master P"}, + {"hiphop_name": "Master Shortie"}, + {"hiphop_name": "Matt Toka"}, + {"hiphop_name": "Max B"}, + {"hiphop_name": "Maxo Kream"}, + {"hiphop_name": "MC Breed"}, + {"hiphop_name": "MC Davo"}, + {"hiphop_name": "MC Eiht"}, + {"hiphop_name": "MC Frontalot"}, + {"hiphop_name": "MC Hammer"}, + {"hiphop_name": "MC Jin"}, + {"hiphop_name": "MC Lyte"}, + {"hiphop_name": "MC Mong"}, + {"hiphop_name": "MC Pressure"}, + {"hiphop_name": "MC Ren"}, + {"hiphop_name": "MC Ride"}, + {"hiphop_name": "MC Serch"}, + {"hiphop_name": "MC Shan"}, + {"hiphop_name": "MC Solaar"}, + {"hiphop_name": "MC Trouble"}, + {"hiphop_name": "MC Tunes"}, + {"hiphop_name": "Meechy Darko"}, + {"hiphop_name": "Meek Mill"}, + {"hiphop_name": "Melle Mel"}, + {"hiphop_name": "Mellow Man Ace"}, + {"hiphop_name": "Memphis Bleek"}, + {"hiphop_name": "Messy Marv"}, + {"hiphop_name": "Method Man"}, + {"hiphop_name": "Metro Boomin"}, + {"hiphop_name": "MF Doom"}, + {"hiphop_name": "MF Grimm"}, + {"hiphop_name": "Mia X"}, + {"hiphop_name": "Mic Geronimo"}, + {"hiphop_name": "Mick Jenkins"}, + {"hiphop_name": "Mickey Factz"}, + {"hiphop_name": "Mike Dean"}, + {"hiphop_name": "Mike G"}, + {"hiphop_name": "Mike Jones"}, + {"hiphop_name": "Mike Posner"}, + {"hiphop_name": "Mike Shinoda"}, + {"hiphop_name": "Mike Stud"}, + {"hiphop_name": "Mike Will Made It"}, + {"hiphop_name": "Mike Zombie"}, + {"hiphop_name": "Milo"}, + {"hiphop_name": "Mims"}, + {"hiphop_name": "Mino"}, + {"hiphop_name": "Miryo"}, + {"hiphop_name": "Missy Elliott"}, + {"hiphop_name": "Mista Grimm"}, + {"hiphop_name": "Mistah F.A.B."}, + {"hiphop_name": "Mister Cee"}, + {"hiphop_name": "Mitchy Slick"}, + {"hiphop_name": "Mo B. Dick"}, + {"hiphop_name": "Mod Sun"}, + {"hiphop_name": "Money-B"}, + {"hiphop_name": "Monie Love"}, + {"hiphop_name": "Monoxide Child"}, + {"hiphop_name": "Mopreme Shakur"}, + {"hiphop_name": "Mos Def"}, + {"hiphop_name": "Mr. Capone-E"}, + {"hiphop_name": "Mr. Cheeks"}, + {"hiphop_name": "Mr. Collipark"}, + {"hiphop_name": "Mr. Criminal"}, + {"hiphop_name": "Mr. Lif"}, + {"hiphop_name": "Mr. Porter"}, + {"hiphop_name": "Mr. Serv-On"}, + {"hiphop_name": "Mr. Short Khop"}, + {"hiphop_name": "Ms. Jade"}, + {"hiphop_name": "Murphy Lee"}, + {"hiphop_name": "Murs"}, + {"hiphop_name": "Mystikal"}, + {"hiphop_name": "Myzery"}, + {"hiphop_name": "Montana of 300"}, + {"hiphop_name": "Nas"}, + {"hiphop_name": "Nicki Minaj"}, + {"hiphop_name": "NBA YoungBoy"}, + {"hiphop_name": "N.O. Joe"}, + {"hiphop_name": "N.O.R.E."}, + {"hiphop_name": "Napoleon"}, + {"hiphop_name": "Nas"}, + {"hiphop_name": "Nate Dogg"}, + {"hiphop_name": "Nature"}, + {"hiphop_name": "Nav"}, + {"hiphop_name": "Nebu Kiniza"}, + {"hiphop_name": "Necro"}, + {"hiphop_name": "Needlz"}, + {"hiphop_name": "Nelly"}, + {"hiphop_name": "NF"}, + {"hiphop_name": "Nick Cannon"}, + {"hiphop_name": "Nicki Minaj"}, + {"hiphop_name": "Nicky da B"}, + {"hiphop_name": "Nicole Wray"}, + {"hiphop_name": "Nikki D"}, + {"hiphop_name": "Ninja"}, + {"hiphop_name": "Nipsey Hussle"}, + {"hiphop_name": "Nitty"}, + {"hiphop_name": "Nitty Scott MC"}, + {"hiphop_name": "NoClue"}, + {"hiphop_name": "No Malice"}, + {"hiphop_name": "Noah 40 Shebib"}, + {"hiphop_name": "Noname"}, + {"hiphop_name": "Nonchalant"}, + {"hiphop_name": "The Notorious B.I.G."}, + {"hiphop_name": "Nottz"}, + {"hiphop_name": "Nujabes"}, + {"hiphop_name": "Nump"}, + {"hiphop_name": "Numskull"}, + {"hiphop_name": "Nyck Caution"}, + {"hiphop_name": "Nyzzy Nyce"}, + {"hiphop_name": "O.T. Genasis"}, + {"hiphop_name": "Obie Trice"}, + {"hiphop_name": "Oddisee"}, + {"hiphop_name": "Offset"}, + {"hiphop_name": "OG Maco"}, + {"hiphop_name": "Oh No"}, + {"hiphop_name": "OJ da Juiceman"}, + {"hiphop_name": "Ol' Dirty Bastard"}, + {"hiphop_name": "Olamide"}, + {"hiphop_name": "Olivia"}, + {"hiphop_name": "Omarion"}, + {"hiphop_name": "Omega Red"}, + {"hiphop_name": "Omillio Sparks"}, + {"hiphop_name": "One Be Lo"}, + {"hiphop_name": "Oneya"}, + {"hiphop_name": "Open Mike Eagle"}, + {"hiphop_name": "Psy"}, + {"hiphop_name": "Q-Tip"}, + {"hiphop_name": "P. Reign"}, + {"hiphop_name": "P.C.T"}, + {"hiphop_name": "Papa Reu"}, + {"hiphop_name": "Papoose"}, + {"hiphop_name": "Paris"}, + {"hiphop_name": "PARTYNEXTDOOR"}, + {"hiphop_name": "Pastor Troy"}, + {"hiphop_name": "Paul Wall"}, + {"hiphop_name": "Peedi Peedi"}, + {"hiphop_name": "Peewee Longway"}, + {"hiphop_name": "Pacewon"}, + {"hiphop_name": "Percee P"}, + {"hiphop_name": "Petey Pablo"}, + {"hiphop_name": "Pharoahe Monch"}, + {"hiphop_name": "Pharrell Williams"}, + {"hiphop_name": "Phat Kat"}, + {"hiphop_name": "Phife Dawg"}, + {"hiphop_name": "Philthy Rich"}, + {"hiphop_name": "Phyno"}, + {"hiphop_name": "Pill"}, + {"hiphop_name": "Pimp C"}, + {"hiphop_name": "Pitbull"}, + {"hiphop_name": "Planet Asia"}, + {"hiphop_name": "Planetary"}, + {"hiphop_name": "Plies"}, + {"hiphop_name": "Playboi Carti"}, + {"hiphop_name": "PnB Rock"}, + {"hiphop_name": "PNC"}, + {"hiphop_name": "Porta"}, + {"hiphop_name": "Positive K"}, + {"hiphop_name": "Post Malone"}, + {"hiphop_name": "Pras"}, + {"hiphop_name": "Prince Ital Joe"}, + {"hiphop_name": "Prince Paul"}, + {"hiphop_name": "Prince Po"}, + {"hiphop_name": "Problem"}, + {"hiphop_name": "Prodigy"}, + {"hiphop_name": "Professor Green"}, + {"hiphop_name": "Project Pat"}, + {"hiphop_name": "Proof"}, + {"hiphop_name": "Prozak"}, + {"hiphop_name": "Psy"}, + {"hiphop_name": "Pusha T"}, + {"hiphop_name": "Queen Latifah"}, + {"hiphop_name": "Q-Tip"}, + {"hiphop_name": "Quan"}, + {"hiphop_name": "Quavo"}, + {"hiphop_name": "Quazedelic"}, + {"hiphop_name": "Queen Latifah"}, + {"hiphop_name": "Queen Pen"}, + {"hiphop_name": "The Quiett"}, + {"hiphop_name": "Quincy Jones III"}, + {"hiphop_name": "Qwazaar"}, + {"hiphop_name": "Qwel"}, + {"hiphop_name": "Rakim"}, + {"hiphop_name": "RZA"}, + {"hiphop_name": "R. Kelly"}, + {"hiphop_name": "R.A. the Rugged Man"}, + {"hiphop_name": "Raekwon"}, + {"hiphop_name": "Rah Digga"}, + {"hiphop_name": "Rahzel"}, + {"hiphop_name": "Rakim"}, + {"hiphop_name": "Rampage"}, + {"hiphop_name": "Rap Monster"}, + {"hiphop_name": "Rappin' 4-Tay"}, + {"hiphop_name": "Rapsody"}, + {"hiphop_name": "Ramey Dawoud"}, + {"hiphop_name": "Ras Kass"}, + {"hiphop_name": "Rasheeda"}, + {"hiphop_name": "Ravi"}, + {"hiphop_name": "Ray Cash"}, + {"hiphop_name": "Ray J"}, + {"hiphop_name": "Ray Luv"}, + {"hiphop_name": "Raz Fresco"}, + {"hiphop_name": "RBX"}, + {"hiphop_name": "The Real Roxanne"}, + {"hiphop_name": "Really Doe"}, + {"hiphop_name": "Red Café"}, + {"hiphop_name": "Red Spyda"}, + {"hiphop_name": "Redfoo"}, + {"hiphop_name": "Redman"}, + {"hiphop_name": "Reef the Lost Cauze"}, + {"hiphop_name": "Reema Major"}, + {"hiphop_name": "Reks"}, + {"hiphop_name": "Remy Ma"}, + {"hiphop_name": "Rhymefest"}, + {"hiphop_name": "Rich Boy"}, + {"hiphop_name": "Rich Brian"}, + {"hiphop_name": "Rich Homie Quan"}, + {"hiphop_name": "Rich The Kid"}, + {"hiphop_name": "Richie Rich"}, + {"hiphop_name": "Rick Rock"}, + {"hiphop_name": "Rick Ross"}, + {"hiphop_name": "Rico Love"}, + {"hiphop_name": "Riff Raff"}, + {"hiphop_name": "Rittz"}, + {"hiphop_name": "RJ"}, + {"hiphop_name": "Rob Sonic"}, + {"hiphop_name": "Rob Stone"}, + {"hiphop_name": "Roc Marciano"}, + {"hiphop_name": "Rockie Fresh"}, + {"hiphop_name": "Rocko"}, + {"hiphop_name": "Roger Troutman"}, + {"hiphop_name": "Romeo Miller"}, + {"hiphop_name": "Ronnie Radke"}, + {"hiphop_name": "Roots Manuva"}, + {"hiphop_name": "Roscoe"}, + {"hiphop_name": "Roscoe Dash"}, + {"hiphop_name": "Rowdy Rebel"}, + {"hiphop_name": "Roxanne Shanté"}, + {"hiphop_name": "Royce da 5'9"}, + {"hiphop_name": "Russ"}, + {"hiphop_name": "Rucka Rucka Ali"}, + {"hiphop_name": "Rydah J. Klyde"}, + {"hiphop_name": "Rye Rye"}, + {"hiphop_name": "RZA"}, + {"hiphop_name": "Roy Woods"}, + {"hiphop_name": "Slick Rick"}, + {"hiphop_name": "Snoop Dogg"}, + {"hiphop_name": "Skabo"}, + {"hiphop_name": "Saafir"}, + {"hiphop_name": "Sabac Red"}, + {"hiphop_name": "Sacario"}, + {"hiphop_name": "Sadat X"}, + {"hiphop_name": "Sadistik"}, + {"hiphop_name": "Sage Francis"}, + {"hiphop_name": "Sage the Gemini"}, + {"hiphop_name": "Saigon"}, + {"hiphop_name": "Sam Sneed"}, + {"hiphop_name": "Sammy Adams"}, + {"hiphop_name": "San E"}, + {"hiphop_name": "San Quinn"}, + {"hiphop_name": "Sarkodie"}, + {"hiphop_name": "Sauce Money"}, + {"hiphop_name": "Savage"}, + {"hiphop_name": "Scarface"}, + {"hiphop_name": "Schoolboy Q"}, + {"hiphop_name": "Schoolly D"}, + {"hiphop_name": "Scott Storch"}, + {"hiphop_name": "Scotty"}, + {"hiphop_name": "Scram Jones"}, + {"hiphop_name": "Scribe"}, + {"hiphop_name": "Scrilla"}, + {"hiphop_name": "Scrufizzer"}, + {"hiphop_name": "Sean Combs"}, + {"hiphop_name": "Sean Paul"}, + {"hiphop_name": "Sean Price"}, + {"hiphop_name": "Sean T"}, + {"hiphop_name": "Serengeti"}, + {"hiphop_name": "Serius Jones"}, + {"hiphop_name": "Sev Statik"}, + {"hiphop_name": "Sha Money XL"}, + {"hiphop_name": "Shabazz the Disciple"}, + {"hiphop_name": "Shad"}, + {"hiphop_name": "Shade Sheist"}, + {"hiphop_name": "Shady Nate"}, + {"hiphop_name": "Shaggy"}, + {"hiphop_name": "Shaggy 2 Dope"}, + {"hiphop_name": "Shaquille O'Neal"}, + {"hiphop_name": "Shawnna"}, + {"hiphop_name": "Shawty Lo"}, + {"hiphop_name": "Sheek Louch"}, + {"hiphop_name": "Shing02"}, + {"hiphop_name": "Sho Baraka"}, + {"hiphop_name": "Shock G"}, + {"hiphop_name": "Shorty"}, + {"hiphop_name": "Shorty Mack"}, + {"hiphop_name": "Shwayze"}, + {"hiphop_name": "Shy Glizzy"}, + {"hiphop_name": "Shyheim"}, + {"hiphop_name": "Shyne"}, + {"hiphop_name": "Silentó"}, + {"hiphop_name": "Silkk the Shocker"}, + {"hiphop_name": "Silla"}, + {"hiphop_name": "Simon D"}, + {"hiphop_name": "Sir Jinx"}, + {"hiphop_name": "Sir Mix-a-Lot"}, + {"hiphop_name": "Sirah"}, + {"hiphop_name": "Skee-Lo"}, + {"hiphop_name": "Skeme"}, + {"hiphop_name": "Skepta"}, + {"hiphop_name": "Skinnyman"}, + {"hiphop_name": "Skooly"}, + {"hiphop_name": "Skyzoo"}, + {"hiphop_name": "SL Jones"}, + {"hiphop_name": "Sleepy Brown"}, + {"hiphop_name": "Slick Rick"}, + {"hiphop_name": "Slim Jxmmi"}, + {"hiphop_name": "Slim Thug"}, + {"hiphop_name": "Slug"}, + {"hiphop_name": "Smitty"}, + {"hiphop_name": "Smoke DZA"}, + {"hiphop_name": "Smooth"}, + {"hiphop_name": "Smoothe da Hustler"}, + {"hiphop_name": "Sniper J"}, + {"hiphop_name": "Snoop Dogg"}, + {"hiphop_name": "Snootie Wild"}, + {"hiphop_name": "Snow Tha Product"}, + {"hiphop_name": "Soce the elemental wizard"}, + {"hiphop_name": "Sole"}, + {"hiphop_name": "Solzilla"}, + {"hiphop_name": "Sonny Digital"}, + {"hiphop_name": "SonReal"}, + {"hiphop_name": "Sonsee"}, + {"hiphop_name": "Soopafly"}, + {"hiphop_name": "Soulja Boy"}, + {"hiphop_name": "Soulja Slim"}, + {"hiphop_name": "South Park Mexican"}, + {"hiphop_name": "Southside"}, + {"hiphop_name": "SpaceGhostPurrp"}, + {"hiphop_name": "Special Ed"}, + {"hiphop_name": "Spice 1"}, + {"hiphop_name": "Spider Loc"}, + {"hiphop_name": "Spoonie Gee"}, + {"hiphop_name": "Spose"}, + {"hiphop_name": "Spot"}, + {"hiphop_name": "Stalley"}, + {"hiphop_name": "Starlito"}, + {"hiphop_name": "Stat Quo"}, + {"hiphop_name": "Static Major"}, + {"hiphop_name": "Statik Selektah"}, + {"hiphop_name": "Steady B"}, + {"hiphop_name": "Stevie Joe"}, + {"hiphop_name": "Stevie Stone"}, + {"hiphop_name": "Stezo"}, + {"hiphop_name": "Stitches"}, + {"hiphop_name": "Sticky Fingaz"}, + {"hiphop_name": "Stoka"}, + {"hiphop_name": "Stoupe the Enemy of Mankind"}, + {"hiphop_name": "Stormzy"}, + {"hiphop_name": "Stretch"}, + {"hiphop_name": "Styles P"}, + {"hiphop_name": "Substantial"}, + {"hiphop_name": "Suga Free"}, + {"hiphop_name": "Suffa"}, + {"hiphop_name": "Swagg Man"}, + {"hiphop_name": "Sweet Tee"}, + {"hiphop_name": "Swings"}, + {"hiphop_name": "Swizz Beatz"}, + {"hiphop_name": "SwizZz"}, + {"hiphop_name": "Syd Tha Kyd"}, + {"hiphop_name": "SZA"}, + {"hiphop_name": "T.I."}, + {"hiphop_name": "Tyler the Creator"}, + {"hiphop_name": "T La Rock"}, + {"hiphop_name": "T-Bone"}, + {"hiphop_name": "T-Nutty"}, + {"hiphop_name": "T-Pain"}, + {"hiphop_name": "T-Wayne"}, + {"hiphop_name": "T. Mills"}, + {"hiphop_name": "T.I."}, + {"hiphop_name": "T.O.P"}, + {"hiphop_name": "Tabi Bonney"}, + {"hiphop_name": "Tablo"}, + {"hiphop_name": "Taio Cruz"}, + {"hiphop_name": "Talib Kweli"}, + {"hiphop_name": "Target"}, + {"hiphop_name": "Tay Dizm"}, + {"hiphop_name": "Tay-K"}, + {"hiphop_name": "TD Cruze"}, + {"hiphop_name": "Teairra Marí"}, + {"hiphop_name": "Tech N9ne"}, + {"hiphop_name": "Tedashii"}, + {"hiphop_name": "TeeFlii"}, + {"hiphop_name": "Tee Grizzley"}, + {"hiphop_name": "Tekitha"}, + {"hiphop_name": "Tela"}, + {"hiphop_name": "Termanology"}, + {"hiphop_name": "Terrace Martin"}, + {"hiphop_name": "Teyana Taylor"}, + {"hiphop_name": "Tha Chill"}, + {"hiphop_name": "Tha City Paper"}, + {"hiphop_name": "Tha Trademarc"}, + {"hiphop_name": "The-Dream"}, + {"hiphop_name": "Theophilus London"}, + {"hiphop_name": "Tiffany Foxx"}, + {"hiphop_name": "Tim Dog"}, + {"hiphop_name": "Timaya"}, + {"hiphop_name": "Timbaland"}, + {"hiphop_name": "Timbe"}, + {"hiphop_name": "Tinie Tempah"}, + {"hiphop_name": "Tink (musician)"}, + {"hiphop_name": "TobyMac"}, + {"hiphop_name": "Tone Lōc"}, + {"hiphop_name": "Tone Trump"}, + {"hiphop_name": "Tonedeff"}, + {"hiphop_name": "Toni Blackman"}, + {"hiphop_name": "Tony Yayo"}, + {"hiphop_name": "Too Short"}, + {"hiphop_name": "Torch (American)"}, + {"hiphop_name": "Torch (German)"}, + {"hiphop_name": "Tory Lanez"}, + {"hiphop_name": "Tracey Lee"}, + {"hiphop_name": "Trae tha Truth"}, + {"hiphop_name": "Tragedy Khadafi"}, + {"hiphop_name": "Travis Scott"}, + {"hiphop_name": "Traxamillion"}, + {"hiphop_name": "Tray Deee"}, + {"hiphop_name": "Treach"}, + {"hiphop_name": "Trey Songz"}, + {"hiphop_name": "Trick Daddy"}, + {"hiphop_name": "Trick-Trick"}, + {"hiphop_name": "Trina"}, + {"hiphop_name": "Trinidad James"}, + {"hiphop_name": "Trip Lee"}, + {"hiphop_name": "Trippie Redd"}, + {"hiphop_name": "Tristan Wilds"}, + {"hiphop_name": "Troy Ave"}, + {"hiphop_name": "Tupac Shakur"}, + {"hiphop_name": "Turf Talk"}, + {"hiphop_name": "Turk"}, + {"hiphop_name": "Tweedy Bird Loc"}, + {"hiphop_name": "Twista"}, + {"hiphop_name": "Twisted Insane"}, + {"hiphop_name": "Ty Dolla Sign"}, + {"hiphop_name": "Tyga"}, + {"hiphop_name": "Tyler Joseph"}, + {"hiphop_name": "Tyler The Creator"}, + {"hiphop_name": "Tyra Bolling"}, + {"hiphop_name": "Verbal Jint"}, + {"hiphop_name": "U-God"}, + {"hiphop_name": "Ugly God"}, + {"hiphop_name": "Uncle Murda"}, + {"hiphop_name": "Unk"}, + {"hiphop_name": "U$O"}, + {"hiphop_name": "Wyclef Jean"}, + {"hiphop_name": "V-Nasty"}, + {"hiphop_name": "V.I.C."}, + {"hiphop_name": "Vado"}, + {"hiphop_name": "Vakill"}, + {"hiphop_name": "Val Young"}, + {"hiphop_name": "Valete"}, + {"hiphop_name": "Vanilla Ice"}, + {"hiphop_name": "Vast Aire"}, + {"hiphop_name": "Verbal Jint"}, + {"hiphop_name": "Verse Simmonds"}, + {"hiphop_name": "Vic Mensa"}, + {"hiphop_name": "Vince Staples"}, + {"hiphop_name": "Vinnie Paz"}, + {"hiphop_name": "Violent J"}, + {"hiphop_name": "Viper"}, + {"hiphop_name": "VL Mike"}, + {"hiphop_name": "Xzibit"}, + {"hiphop_name": "Waka Flocka Flame"}, + {"hiphop_name": "Wale"}, + {"hiphop_name": "Warren G"}, + {"hiphop_name": "Warryn Campbell"}, + {"hiphop_name": "Watsky"}, + {"hiphop_name": "Wax (rapper)"}, + {"hiphop_name": "WC"}, + {"hiphop_name": "Webbie"}, + {"hiphop_name": "The Weeknd"}, + {"hiphop_name": "Westside Gunn"}, + {"hiphop_name": "Wikluh Sky"}, + {"hiphop_name": "Will Smith"}, + {"hiphop_name": "will.i.am"}, + {"hiphop_name": "Willie D"}, + {"hiphop_name": "Willie the Kid"}, + {"hiphop_name": "Willow Smith"}, + {"hiphop_name": "Willy Northpole"}, + {"hiphop_name": "Wish Bone"}, + {"hiphop_name": "Witchdoctor"}, + {"hiphop_name": "Wiz Khalifa"}, + {"hiphop_name": "Wizkid"}, + {"hiphop_name": "Wrekonize"}, + {"hiphop_name": "Wyclef Jean"}, + {"hiphop_name": "X-Raided"}, + {"hiphop_name": "XV"}, + {"hiphop_name": "Xzibit"}, + {"hiphop_name": "XXXTentacion"}, + {"hiphop_name": "X Clan"}, + {"hiphop_name": "Young Jeezy"}, + {"hiphop_name": "Ya Boy"}, + {"hiphop_name": "Yaki Kadafi"}, + {"hiphop_name": "Yazz The Greatest"}, + {"hiphop_name": "YBN Nahmir"}, + {"hiphop_name": "YC"}, + {"hiphop_name": "YDG"}, + {"hiphop_name": "Yelawolf"}, + {"hiphop_name": "YFN Lucci"}, + {"hiphop_name": "YG"}, + {"hiphop_name": "Yo Gotti"}, + {"hiphop_name": "Yo Yo Honey Singh"}, + {"hiphop_name": "Yoon Mi-rae"}, + {"hiphop_name": "Young Bleed"}, + {"hiphop_name": "Young Buck"}, + {"hiphop_name": "Young Chop"}, + {"hiphop_name": "Young Chris"}, + {"hiphop_name": "Young Dolph"}, + {"hiphop_name": "Young Dre the Truth"}, + {"hiphop_name": "Young Dro"}, + {"hiphop_name": "Young Greatness"}, + {"hiphop_name": "Young Jeezy"}, + {"hiphop_name": "Young M.A"}, + {"hiphop_name": "Young Maylay"}, + {"hiphop_name": "Young MC"}, + {"hiphop_name": "Young Noble"}, + {"hiphop_name": "Young Scooter"}, + {"hiphop_name": "Young Thug"}, + {"hiphop_name": "YoungBoy Never Broke Again"}, + {"hiphop_name": "Your Old Droog"}, + {"hiphop_name": "Yubin"}, + {"hiphop_name": "Yukmouth"}, + {"hiphop_name": "Yung Berg"}, + {"hiphop_name": "Yung Joc"}, + {"hiphop_name": "Yung L.A."}, + {"hiphop_name": "Yung Lean"}, + {"hiphop_name": "Yung Ro"}, + {"hiphop_name": "Yung Wun"}, + {"hiphop_name": "Yung6ix"}, + {"hiphop_name": "YZ"}, + {"hiphop_name": "Z-Ro"}, + {"hiphop_name": "Zack de la Rocha"}, + {"hiphop_name": "Zaytoven"}, + {"hiphop_name": "Zebra Katz"}, + {"hiphop_name": "Zelooperz"}, + {"hiphop_name": "Zico"} +]
\ No newline at end of file diff --git a/pysite/mixins.py b/pysite/mixins.py index efbc2d0c..0a9402a9 100644 --- a/pysite/mixins.py +++ b/pysite/mixins.py @@ -4,7 +4,6 @@ from weakref import ref from flask import Blueprint from rethinkdb.ast import Table -from pysite.constants import DEBUG_MODE from pysite.database import RethinkDB @@ -53,9 +52,6 @@ class DBMixin: cls._db = ref(manager.db) - if DEBUG_MODE: - manager.db.create_table(cls.table_name, primary_key=cls.table_primary_key) - @property def table(self) -> Table: return self.db.query(self.table_name) diff --git a/pysite/views/api/bot/tags.py b/pysite/views/api/bot/tags.py index 21b64c2c..ee1a1bee 100644 --- a/pysite/views/api/bot/tags.py +++ b/pysite/views/api/bot/tags.py @@ -32,7 +32,6 @@ class TagsView(APIView, DBMixin): path = "/tags" name = "api.bot.tags" table_name = "tags" - table_primary_key = "tag_name" @api_key @api_params(schema=GET_SCHEMA, validation_type=ValidationTypes.params) diff --git a/pysite/views/api/bot/user.py b/pysite/views/api/bot/user.py index da5fe0aa..3d8d7271 100644 --- a/pysite/views/api/bot/user.py +++ b/pysite/views/api/bot/user.py @@ -23,7 +23,6 @@ class UserView(APIView, DBMixin): path = "/user" name = "api.bot.user" table_name = "users" - table_primary_key = "user_id" @api_key @api_params(schema=SCHEMA, validation_type=ValidationTypes.json) diff --git a/pysite/views/wiki/edit.py b/pysite/views/wiki/edit.py index 0d70fed5..9eb50c9e 100644 --- a/pysite/views/wiki/edit.py +++ b/pysite/views/wiki/edit.py @@ -13,9 +13,7 @@ from pysite.rst import render class EditView(RouteView, DBMixin): path = "/edit/<path:page>" # "path" means that it accepts slashes name = "edit" - table_name = "wiki" - table_primary_key = "slug" @require_roles(*EDITOR_ROLES) def get(self, page): diff --git a/pysite/views/wiki/page.py b/pysite/views/wiki/page.py index 36fdcd39..500d5c04 100644 --- a/pysite/views/wiki/page.py +++ b/pysite/views/wiki/page.py @@ -10,9 +10,7 @@ from pysite.mixins import DBMixin class PageView(RouteView, DBMixin): path = "/wiki/<path:page>" # "path" means that it accepts slashes name = "page" - table_name = "wiki" - table_primary_key = "slug" def get(self, page): obj = self.db.get(self.table_name, page) diff --git a/pysite/views/wiki/source.py b/pysite/views/wiki/source.py index 7038dad9..80f362df 100644 --- a/pysite/views/wiki/source.py +++ b/pysite/views/wiki/source.py @@ -13,9 +13,7 @@ from pysite.mixins import DBMixin class PageView(RouteView, DBMixin): path = "/source/<path:page>" # "path" means that it accepts slashes name = "source" - table_name = "wiki" - table_primary_key = "slug" def get(self, page): obj = self.db.get(self.table_name, page) |