ModDB Pages

This documents the models representing full ModDB pages such as Mod, Game, Engines and more. These models often accept entire ModDB pages as arguments and can parse them very efficiently.

Mod

class moddb.pages.Mod(html)[source]

Basically just a subclass of Page

Parameters:

html (bs4.BeautifulSoup) – The html to parse. Allows for finer control.

Filtering

releasedStatus

The status of the mod (released, unreleased)

genreGenre

The genre of the mod (fps, tower defense)

themeTheme

The theme of the mod (fantasy, action)

playersPlayerStyle

Player styles of the mod (co-op, singleplayer)

timeframeTimeFrame

The time period this was released in (last 24hr, last week, last month)

gameUnion[Game, Object]

An game object or an object with an id attribute which represents the game the mod belongs to.

Sorting

  • released - when the object was released, asc is oldest, desc is most recent

  • id - when it was added to moddb, asc is oldest, desc is most recent

  • ranktoday - order by daily ranking, asc is highest ranked, desc is lowest rank

  • visitstotal - order by most views, asc is highest views, desc is lowest views

  • rating - order by rating, asc is highest rating, desc is lowest rating

  • name - order alphabetically, asc is a-z, desc is z-a

  • game - order by game???

  • dateup - order by latest update, asc is most recent update first, desc is oldest update first

id

The id of the page

Type:

int

name_id

The name_id of the entity, cannot be changed, it’s a mix of the original username lowercased with spaces removed and shortened.

Type:

str

url

The url of the page

Type:

str

comments

The comments scrapped on this list in order.

Type:

CommentList[Comment]

report

URL to report the page

Type:

str

name

The name of the page

Type:

str

profile

The object with the content of the page’s profile box.

Type:

Profile

stats

The object containg stat data on the page such as views, followers, ect…

Type:

Statistics

style

The object containing data relevant to the type of the page, not valid for Engines. Multiplayer, singleplayer, ect…

Type:

Style

suggestions

A list of thumbnail object representing moddb’s suggestion of similar pages for the visiting member.

Type:

List[Thumbnail]

files

A list of thumbnails representing a possible partial list of all the files. To get a guaranteed full list either compare with statistics.files to see if the length of the list matches the number of files in the stats or use get_files, although that will still not return the whole list if there are multiple pages of files.

Type:

List[Thumbnail]

articles

A list of thumbnail objects representing articles present on the page. Usually 3 or 4 articles long.

Type:

List[Thumbnail]

article

A partial representation of the frong page article. This does not include things like comments or any of the sideba elements found in a full article. Can be parsed to return the complete Article object.

Type:

PartialArticle

tags

A list of partial tags. You can use get_tags and then use the name id to get the right one.

Type:

List[PartialTag]

imagebox

A list of Thumbnail objects representing the image, videos and audio clips that are presented in the image box on the front page.

Type:

List[Thumbnail]

embed

The html necessary to embed the a widget of the page.

Type:

str

rating

A float out of ten representing the average rating for the page

Type:

float

medias

list of thumbnails representing all the combined media objects of a page (videos and images)

Type:

List[Thumbnail]

summary

Short description of the page, in plaintext.

Type:

str

description

The full description of the page, contains html

Type:

str

plaintext

Plaintext version of the full description

Type:

str

get_addons(index=1, *, query=None, addon_type=None, timeframe=None, licence=None, sort=None)

Get a page of addons for the page. Each page will yield up to 30 addons.

Parameters:
  • index (Optional[int]) – The page number to get the addons from.

  • query (Optional[str]) – The string query to search for in the addon name, optional.

  • addon_type (Optional[AddonCategory]) – Type enum defining what category the file is.

  • timeframe (Optional[TimeFrame]) – Time frame of when the file was added, optional

  • licence (Optional[Licence]) – The licence for the addon, optional

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of addon type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_articles(index=1, *, query=None, category=None, timeframe=None, sort=None)

Get a page of articles for the page. Each page will yield up to 30 articles.

Parameters:
  • index (Optional[int]) – The page number to get the articles from.

  • query (Optional[str]) – The string query to search for in the article name, optional.

  • category (Optional[ArticleCategory]) – Type enum defining what the article is, optional

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of article type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_comments(index=1, *, show_deleted=False)

Used to get comments on the model regardless of what page they may be present in. The function itself simply relies on two other to make the request and parse the table.

Parameters:
  • index (int) – The page of the model to get the comments for.

  • show_deleted (Optional[bool]) – Pass true to show deleted user comments. Only works if it is a page you have permissions on.

Returns:

A list-like object containing the comments and additional methods

Return type:

CommentList[Comment]

get_files(index=1, *, query=None, category=None, addon_type=None, timeframe=None, sort=None)

Get a page of files for the page. Each page will yield up to 30 files.

Parameters:
  • index (Optional[int]) – The page number to get the files from.

  • query (Optional[str]) – The string query to search for in the file name, optional.

  • category ([FileCategory]) – Type enum defining what the file is, optional

  • addon_type (Optional[AddonCategory]) – Type enum defining what category the file is.

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of file type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_images()

Get all the images a page has uploaded. Literally all of them. As thumbnails. ModDB’s imagebox caches all the urls for images on the page so this grabs them all. Lists might be long, but this is all the images. They can be invidually parsed to get full fledged media objects from them.

Returns:

The list of image type thumbnails parsed from the page

Return type:

List[Thumbnail]

get_reviews(index=1, *, query=None, rating=None, sort=None)

Get a page of reviews for the page. Each page will yield up to 10 reviews.

Parameters:
  • index (Optional[int]) – The page number to get the reviews from.

  • query (Optional[str]) – The string to look for in the review, optional.

  • rating (Optiona[int]) – A number between 1 and 10 to get the ratings

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of reviews parsed from the page

Return type:

ResultList[Review]

get_tags()

Get more tags for a page.

Returns:

List of returned tags

Return type:

List[Tag]

get_tutorials(index=1, *, query=None, difficulty=None, tutorial_type=None, sort=None)

Get a page of tutorial for the page. Each page will yield up to 30 tutorials.

Parameters:
  • index (Optional[int]) – The page number to get the tutorials from.

  • query (Optional[str]) – The string query to look for in the tutorial title, optional.

  • difficulty (Optional[Difficulty]) – Enum type representing the difficulty of the tutorial, optional.

  • tutorial_type (Optional[TutorialCategory]) – Enum type representing the theme/type/category of the tutorial, optional.

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of article type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_videos()

Get all the videos a page has uploaded. Literally all of them. As thumbnails. ModDB’s imagebox caches all the urls for videos on the page so this grabs them all. Lists might be long, but this is all the videos. They can be invidually parsed to get full fledged media objects from them.

Returns:

The list of video type thumbnails parsed from the page

Return type:

List[Thumbnail]

get_watchers(index=1, *, query=None, sort=None)

Get a page of watchers for the page. Each page will yield up to 30 members.

Parameters:
  • index (Optional[int]) – The page number to get the watchers from.

  • query (Optional[str]) – The string query to search for in the watcher name, optional.

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of member type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

rss(type)

Get the RSS feed url for the page depending on which feed type you want

Parameters:

type (RSSType) – The type of feed you desire to get

Returns:

URL for the feed type

Return type:

str

Game

class moddb.pages.Game(html)[source]

A subclass of Page plus a method to get all the mods.

Parameters:

html (bs4.BeautifulSoup) – The html to parse. Allows for finer control.

Filtering

releasedStatus

The status of the game (released, unreleased)

genreGenre

The genre of the game (fps, tower defense)

themeTheme

The theme of the game (fantasy, action)

indieScope

Whether the game is triple AAA or indie

playersPlayerStyle

Player styles of the game (co-op, singleplayer)

timeframeTimeFrame

The time period this was released in (last 24hr, last week, last month)

Sorting

  • released - when the object was released, asc is oldest, desc is most recent

  • id - when it was added to moddb, asc is oldest, desc is most recent

  • ranktoday - order by daily ranking, asc is highest ranked, desc is lowest rank

  • visitstotal - order by most views, asc is highest views, desc is lowest views

  • rating - order by rating, asc is highest rating, desc is lowest rating

  • name - order alphabetically, asc is a-z, desc is z-a

  • dateup - order by latest update, asc is most recent update first, desc is oldest update first

id

The id of the page

Type:

int

name_id

The name_id of the entity, cannot be changed, it’s a mix of the original username lowercased with spaces removed and shortened.

Type:

str

url

The url of the page

Type:

str

comments

The comments scrapped on this list in order.

Type:

CommentList[Comment]

report

URL to report the page

Type:

str

name

The name of the page

Type:

str

profile

The object with the content of the page’s profile box.

Type:

Profile

stats

The object containg stat data on the page such as views, followers, ect…

Type:

Statistics

style

The object containing data relevant to the type of the page, not valid for Engines. Multiplayer, singleplayer, ect…

Type:

Style

suggestions

A list of thumbnail object representing moddb’s suggestion of similar pages for the visiting member.

Type:

List[Thumbnail]

files

A list of thumbnails representing a possible partial list of all the files. To get a guaranteed full list either compare with statistics.files to see if the length of the list matches the number of files in the stats or use get_files, although that will still not return the whole list if there are multiple pages of files.

Type:

List[Thumbnail]

articles

A list of thumbnail objects representing articles present on the page. Usually 3 or 4 articles long.

Type:

List[Thumbnail]

article

A partial representation of the frong page article. This does not include things like comments or any of the sideba elements found in a full article. Can be parsed to return the complete Article object.

Type:

PartialArticle

tags

A list of partial tags. You can use get_tags and then use the name id to get the right one.

Type:

List[PartialTag]

imagebox

A list of Thumbnail objects representing the image, videos and audio clips that are presented in the image box on the front page.

Type:

List[Thumbnail]

embed

The html necessary to embed the a widget of the page.

Type:

str

rating

A float out of ten representing the average rating for the page

Type:

float

medias

list of thumbnails representing all the combined media objects of a page (videos and images)

Type:

List[Thumbnail]

summary

Short description of the page, in plaintext.

Type:

str

description

The full description of the page, contains html

Type:

str

plaintext

Plaintext version of the full description

Type:

str

get_addons(index=1, *, query=None, addon_type=None, timeframe=None, licence=None, sort=None)

Get a page of addons for the page. Each page will yield up to 30 addons.

Parameters:
  • index (Optional[int]) – The page number to get the addons from.

  • query (Optional[str]) – The string query to search for in the addon name, optional.

  • addon_type (Optional[AddonCategory]) – Type enum defining what category the file is.

  • timeframe (Optional[TimeFrame]) – Time frame of when the file was added, optional

  • licence (Optional[Licence]) – The licence for the addon, optional

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of addon type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_articles(index=1, *, query=None, category=None, timeframe=None, sort=None)

Get a page of articles for the page. Each page will yield up to 30 articles.

Parameters:
  • index (Optional[int]) – The page number to get the articles from.

  • query (Optional[str]) – The string query to search for in the article name, optional.

  • category (Optional[ArticleCategory]) – Type enum defining what the article is, optional

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of article type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_comments(index=1, *, show_deleted=False)

Used to get comments on the model regardless of what page they may be present in. The function itself simply relies on two other to make the request and parse the table.

Parameters:
  • index (int) – The page of the model to get the comments for.

  • show_deleted (Optional[bool]) – Pass true to show deleted user comments. Only works if it is a page you have permissions on.

Returns:

A list-like object containing the comments and additional methods

Return type:

CommentList[Comment]

get_files(index=1, *, query=None, category=None, addon_type=None, timeframe=None, sort=None)

Get a page of files for the page. Each page will yield up to 30 files.

Parameters:
  • index (Optional[int]) – The page number to get the files from.

  • query (Optional[str]) – The string query to search for in the file name, optional.

  • category ([FileCategory]) – Type enum defining what the file is, optional

  • addon_type (Optional[AddonCategory]) – Type enum defining what category the file is.

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of file type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_images()

Get all the images a page has uploaded. Literally all of them. As thumbnails. ModDB’s imagebox caches all the urls for images on the page so this grabs them all. Lists might be long, but this is all the images. They can be invidually parsed to get full fledged media objects from them.

Returns:

The list of image type thumbnails parsed from the page

Return type:

List[Thumbnail]

get_mods(index=1, *, query=None, status=None, genre=None, theme=None, players=None, timeframe=None, game=None, sort=None)

Get a page of mods for the game. Each page will yield up to 30 mods.

Parameters:
  • index (int) – The page number to get the mods from.

  • query (Optional[str]) – The text to look for in the mod names.

  • status (Optional[Status]) – The status of the mod (unreleased, released, early access, ect…)

  • genre (Optional[Genre]) – The genre of the mod (fps, tower defense)

  • theme (Optional[Theme]) – The theme of the mod (fantasy, action)

  • players (Optional[PlayerStyle]) – Player styles of the mod (co-op, singleplayer)

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • game (Union[mod, Object]) – An mod object or an object with an id attribute which represents the mod the mod belongs to.

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of mods type thumbnails parsed from the game

Return type:

ResultList[Thumbnail]

get_reviews(index=1, *, query=None, rating=None, sort=None)

Get a page of reviews for the page. Each page will yield up to 10 reviews.

Parameters:
  • index (Optional[int]) – The page number to get the reviews from.

  • query (Optional[str]) – The string to look for in the review, optional.

  • rating (Optiona[int]) – A number between 1 and 10 to get the ratings

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of reviews parsed from the page

Return type:

ResultList[Review]

get_tags()

Get more tags for a page.

Returns:

List of returned tags

Return type:

List[Tag]

get_tutorials(index=1, *, query=None, difficulty=None, tutorial_type=None, sort=None)

Get a page of tutorial for the page. Each page will yield up to 30 tutorials.

Parameters:
  • index (Optional[int]) – The page number to get the tutorials from.

  • query (Optional[str]) – The string query to look for in the tutorial title, optional.

  • difficulty (Optional[Difficulty]) – Enum type representing the difficulty of the tutorial, optional.

  • tutorial_type (Optional[TutorialCategory]) – Enum type representing the theme/type/category of the tutorial, optional.

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of article type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_videos()

Get all the videos a page has uploaded. Literally all of them. As thumbnails. ModDB’s imagebox caches all the urls for videos on the page so this grabs them all. Lists might be long, but this is all the videos. They can be invidually parsed to get full fledged media objects from them.

Returns:

The list of video type thumbnails parsed from the page

Return type:

List[Thumbnail]

get_watchers(index=1, *, query=None, sort=None)

Get a page of watchers for the page. Each page will yield up to 30 members.

Parameters:
  • index (Optional[int]) – The page number to get the watchers from.

  • query (Optional[str]) – The string query to search for in the watcher name, optional.

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of member type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

rss(type)

Get the RSS feed url for the page depending on which feed type you want

Parameters:

type (RSSType) – The type of feed you desire to get

Returns:

URL for the feed type

Return type:

str

Engine

class moddb.pages.Engine(html)[source]

A subclass of Page, however, it does not have the files attribute

Parameters:

html (bs4.BeautifulSoup) – The html to parse. Allows for finer control.

Filtering

releasedStatus

The status of the engine (released, unreleased)

licenceLicence

The license of the engine

timeframeTimeFrame

The time period this was released in (last 24hr, last week, last month)

Sorting

  • released - when the object was released, asc is oldest, desc is most recent

  • id - when it was added to moddb, asc is oldest, desc is most recent

  • ranktoday - order by daily ranking, asc is highest ranked, desc is lowest rank

  • visitstotal - order by most views, asc is highest views, desc is lowest views

  • rating - order by rating, asc is highest rating, desc is lowest rating

  • name - order alphabetically, asc is a-z, desc is z-a

  • dateup - order by latest update, asc is most recent update first, desc is oldest update first

id

The id of the page

Type:

int

name_id

The name_id of the entity, cannot be changed, it’s a mix of the original username lowercased with spaces removed and shortened.

Type:

str

url

The url of the page

Type:

str

comments

The comments scrapped on this list in order.

Type:

CommentList[Comment]

report

URL to report the page

Type:

str

name

The name of the page

Type:

str

profile

The object with the content of the page’s profile box.

Type:

Profile

stats

The object containg stat data on the page such as views, followers, ect…

Type:

Statistics

style

The object containing data relevant to the type of the page, not valid for Engines. Multiplayer, singleplayer, ect…

Type:

Style

suggestions

A list of thumbnail object representing moddb’s suggestion of similar pages for the visiting member.

Type:

List[Thumbnail]

files

A list of thumbnails representing a possible partial list of all the files. To get a guaranteed full list either compare with statistics.files to see if the length of the list matches the number of files in the stats or use get_files, although that will still not return the whole list if there are multiple pages of files.

Type:

List[Thumbnail]

articles

A list of thumbnail objects representing articles present on the page. Usually 3 or 4 articles long.

Type:

List[Thumbnail]

article

A partial representation of the frong page article. This does not include things like comments or any of the sideba elements found in a full article. Can be parsed to return the complete Article object.

Type:

PartialArticle

tags

A list of partial tags. You can use get_tags and then use the name id to get the right one.

Type:

List[PartialTag]

imagebox

A list of Thumbnail objects representing the image, videos and audio clips that are presented in the image box on the front page.

Type:

List[Thumbnail]

embed

The html necessary to embed the a widget of the page.

Type:

str

rating

A float out of ten representing the average rating for the page

Type:

float

medias

list of thumbnails representing all the combined media objects of a page (videos and images)

Type:

List[Thumbnail]

summary

Short description of the page, in plaintext.

Type:

str

description

The full description of the page, contains html

Type:

str

plaintext

Plaintext version of the full description

Type:

str

games

A list of games suggested on the engine main page.

Type:

List[Thumbnail]

get_articles(index=1, *, query=None, category=None, timeframe=None, sort=None)

Get a page of articles for the page. Each page will yield up to 30 articles.

Parameters:
  • index (Optional[int]) – The page number to get the articles from.

  • query (Optional[str]) – The string query to search for in the article name, optional.

  • category (Optional[ArticleCategory]) – Type enum defining what the article is, optional

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of article type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_comments(index=1, *, show_deleted=False)

Used to get comments on the model regardless of what page they may be present in. The function itself simply relies on two other to make the request and parse the table.

Parameters:
  • index (int) – The page of the model to get the comments for.

  • show_deleted (Optional[bool]) – Pass true to show deleted user comments. Only works if it is a page you have permissions on.

Returns:

A list-like object containing the comments and additional methods

Return type:

CommentList[Comment]

get_files(index=1, *, query=None, category=None, addon_type=None, timeframe=None, sort=None)

Get a page of files for the page. Each page will yield up to 30 files.

Parameters:
  • index (Optional[int]) – The page number to get the files from.

  • query (Optional[str]) – The string query to search for in the file name, optional.

  • category ([FileCategory]) – Type enum defining what the file is, optional

  • addon_type (Optional[AddonCategory]) – Type enum defining what category the file is.

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of file type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_games(index=1, *, query=None, status=None, genre=None, theme=None, scope=None, players=None, timeframe=None, sort=None)

Get a page of games for the model. Each page will yield up to 30 games.

Parameters:
  • index (Optional[int]) – The page number to get the games for.

  • query (Optional[str]) – The text to look for in the game names.

  • status (Optional[Status]) – The status of the game (unreleased, released, early access, ect…)

  • genre (Optional[Genre]) – The genre of the game (fps, tower defense)

  • theme (Optional[Theme]) – The theme of the game (fantasy, action)

  • scope (Optional[Scope]) – The scope of the game (AAA, indie)

  • players (Optional[PlayerStyle]) – Player styles of the game (co-op, singleplayer)

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

List of game like thumbnails that can be parsed individually.

Return type:

ResultList[Thumbnail]

get_images()

Get all the images a page has uploaded. Literally all of them. As thumbnails. ModDB’s imagebox caches all the urls for images on the page so this grabs them all. Lists might be long, but this is all the images. They can be invidually parsed to get full fledged media objects from them.

Returns:

The list of image type thumbnails parsed from the page

Return type:

List[Thumbnail]

get_reviews(index=1, *, query=None, rating=None, sort=None)

Get a page of reviews for the page. Each page will yield up to 10 reviews.

Parameters:
  • index (Optional[int]) – The page number to get the reviews from.

  • query (Optional[str]) – The string to look for in the review, optional.

  • rating (Optiona[int]) – A number between 1 and 10 to get the ratings

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of reviews parsed from the page

Return type:

ResultList[Review]

get_tags()

Get more tags for a page.

Returns:

List of returned tags

Return type:

List[Tag]

get_tutorials(index=1, *, query=None, difficulty=None, tutorial_type=None, sort=None)

Get a page of tutorial for the page. Each page will yield up to 30 tutorials.

Parameters:
  • index (Optional[int]) – The page number to get the tutorials from.

  • query (Optional[str]) – The string query to look for in the tutorial title, optional.

  • difficulty (Optional[Difficulty]) – Enum type representing the difficulty of the tutorial, optional.

  • tutorial_type (Optional[TutorialCategory]) – Enum type representing the theme/type/category of the tutorial, optional.

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of article type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_videos()

Get all the videos a page has uploaded. Literally all of them. As thumbnails. ModDB’s imagebox caches all the urls for videos on the page so this grabs them all. Lists might be long, but this is all the videos. They can be invidually parsed to get full fledged media objects from them.

Returns:

The list of video type thumbnails parsed from the page

Return type:

List[Thumbnail]

get_watchers(index=1, *, query=None, sort=None)

Get a page of watchers for the page. Each page will yield up to 30 members.

Parameters:
  • index (Optional[int]) – The page number to get the watchers from.

  • query (Optional[str]) – The string query to search for in the watcher name, optional.

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of member type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

rss(type)

Get the RSS feed url for the page depending on which feed type you want

Parameters:

type (RSSType) – The type of feed you desire to get

Returns:

URL for the feed type

Return type:

str

File

class moddb.pages.File(html)[source]

An oject representing a file on ModDB, a file is something posted by the page owner which is directly linked to the page. It is endorsed by the page owner and they should do everythign they can to make sure that it is safe. As compared to an addon that may be added by fans to the page and that are files meant to work with the page but that are not directly related to the page. E.x the file of a mod page would be the mod files used to install the mod whereas an addon could be something like a fan-made texture pack for the mod or a map.

Parameters:

html (bs4.BeautifulSoup) – The html to parse. Allows for finer control.

Filtering

categoryFileCategory

The type of file (audio, video, demo, full version….)

categoryaddonAddonCategory

The type of addon (map, textures, ect…)

gameUnion[Game, Object]

An game object or an object with an id attribute which represents the game the file belongs to.

timeframeTimeFrame

The time period this was released in (last 24hr, last week, last month)

Sorting

  • released - when the object was released, asc is oldest, desc is most recent

  • id - when it was added to moddb, asc is oldest, desc is most recent

  • ranktoday - order by daily ranking, asc is highest ranked, desc is lowest rank

  • visitstotal - order by most views, asc is highest views, desc is lowest views

  • rating - order by rating, asc is highest rating, desc is lowest rating

  • name - order alphabetically, asc is a-z, desc is z-a

  • date - order by upload date, asc is most recent first, desc is oldest first

id

The id of the page

Type:

int

name_id

The name_id of the entity, cannot be changed, it’s a mix of the original username lowercased with spaces removed and shortened.

Type:

str

url

The url of the page

Type:

str

comments

The comments scrapped on this list in order.

Type:

CommentList[Comment]

report

URL to report the page

Type:

str

filename

The name of the file

Type:

str

hash

The MD5 hash of the file

Type:

str

name

The name of the page

Type:

str

size

the file size in bytes

Type:

int

today

The number of downloads today

Type:

int

downloads

The total number of times this file has been downloaded

Type:

int

category

The category of the file

Type:

FileCategory

author

A member type thumbnail of the member who uploaded the file

Type:

Thumbnail

date

The date the file was uploaded

Type:

datetime.datetime

button

html code for the embed button

Type:

str

widget

html code for the embed widget

Type:

str

description

Description of the file, as written by the author

Type:

str

preview

URL of the preview image for the file

Type:

str

get_comments(index=1, *, show_deleted=False)

Used to get comments on the model regardless of what page they may be present in. The function itself simply relies on two other to make the request and parse the table.

Parameters:
  • index (int) – The page of the model to get the comments for.

  • show_deleted (Optional[bool]) – Pass true to show deleted user comments. Only works if it is a page you have permissions on.

Returns:

A list-like object containing the comments and additional methods

Return type:

CommentList[Comment]

get_mirrors()[source]

Get all the mirrors from which a file can be downloaded. This can then be passed to File.save to download from a specific mirror.

Returns:

A list of Mirror objects

Return type:

List[Mirror]

save(file_obj, *, mirror=None)[source]

Save the file to an object. This functions makes two requests. If you pass a valid mirror it will make only one request.

Parameters:
  • file_obj (BinaryIO) – The file obj to save the file to. The binary data will be streamed to that object.

  • mirror (Optional[Mirror]) – An optional mirror object to download the file from a specific moddb mirror

Addon

class moddb.pages.Addon(html)[source]

Object representing an addon. Seemingly the only difference between an addon and a file is in the semantics. A file often represents something official released by the page, e.g. the mod installation or an official guide where as addons are often fan made and might not be directly endorsed by the page owners even if it is allowed. They literally add on to the page’s content without becoming part of it. There is a slight difference in their profiles but nothing beyond that.

Parameters:

html (bs4.BeautifulSoup) – The html to parse. Allows for finer control.

Filtering

categoryaddonAddonCategory

The type of addon (map, textures, ect…)

licenceLicence

The licence of the addon

gameUnion[Game, Object]

An game object or an object with an id attribute which represents the game the addon belongs to.

timeframeTimeFrame

The time period this was released in (last 24hr, last week, last month)

Sorting

  • released - when the object was released, asc is oldest, desc is most recent

  • id - when it was added to moddb, asc is oldest, desc is most recent

  • ranktoday - order by daily ranking, asc is highest ranked, desc is lowest rank

  • visitstotal - order by most views, asc is highest views, desc is lowest views

  • rating - order by rating, asc is highest rating, desc is lowest rating

  • name - order alphabetically, asc is a-z, desc is z-a

  • licence - order based on licence

  • date - order by upload date, asc is most recent first, desc is oldest first

id

The id of the page

Type:

int

name_id

The name_id of the entity, cannot be changed, it’s a mix of the original username lowercased with spaces removed and shortened.

Type:

str

url

The url of the page

Type:

str

comments

The comments scrapped on this list in order.

Type:

CommentList[Comment]

report

URL to report the page

Type:

str

id

The id of the page

Type:

int

name_id

The name_id of the entity, cannot be changed, it’s a mix of the original username lowercased with spaces removed and shortened.

Type:

str

url

The url of the page

Type:

str

comments

The comments scrapped on this list in order.

Type:

CommentList[Comment]

report

URL to report the page

Type:

str

filename

The name of the file

Type:

str

hash

The MD5 hash of the file

Type:

str

name

The name of the page

Type:

str

size

the file size in bytes

Type:

int

today

The number of downloads today

Type:

int

downloads

The total number of times this file has been downloaded

Type:

int

category

The category of the file

Type:

FileCategory

author

A member type thumbnail of the member who uploaded the file

Type:

Thumbnail

date

The date the file was uploaded

Type:

datetime.datetime

button

html code for the embed button

Type:

str

widget

html code for the embed widget

Type:

str

description

Description of the file, as written by the author

Type:

str

preview

URL of the preview image for the file

Type:

str

get_comments(index=1, *, show_deleted=False)

Used to get comments on the model regardless of what page they may be present in. The function itself simply relies on two other to make the request and parse the table.

Parameters:
  • index (int) – The page of the model to get the comments for.

  • show_deleted (Optional[bool]) – Pass true to show deleted user comments. Only works if it is a page you have permissions on.

Returns:

A list-like object containing the comments and additional methods

Return type:

CommentList[Comment]

get_mirrors()

Get all the mirrors from which a file can be downloaded. This can then be passed to File.save to download from a specific mirror.

Returns:

A list of Mirror objects

Return type:

List[Mirror]

save(file_obj, *, mirror=None)

Save the file to an object. This functions makes two requests. If you pass a valid mirror it will make only one request.

Parameters:
  • file_obj (BinaryIO) – The file obj to save the file to. The binary data will be streamed to that object.

  • mirror (Optional[Mirror]) – An optional mirror object to download the file from a specific moddb mirror

Media

class moddb.pages.Media(html)[source]

Represents an image, audio file or video file on

Parameters:

html (bs4.BeautifulSoup) – The html to parse. Allows for finer control.

Filtering

siteareaCategory

The type of model the media belongs to. Category.downloads is not valid for this.

Sorting

  • ranktoday - order by daily ranking, asc is highest ranked, desc is lowest rank

  • visitstotal - order by most views, asc is highest views, desc is lowest views

  • name - order alphabetically, asc is a-z, desc is z-a

  • id - order by upload date, asc is most recent first, desc is oldest first

Exclusive to videos and audios * duration - order by duration, asc is shortest to longest, desc is longest first

id

The id of the page

Type:

int

name_id

The name_id of the entity, cannot be changed, it’s a mix of the original username lowercased with spaces removed and shortened.

Type:

str

url

The url of the page

Type:

str

comments

The comments scrapped on this list in order.

Type:

CommentList[Comment]

report

URL to report the page

Type:

str

date

The date the media was uploaded

Type:

datetime.datetime

name

The name of the media

Type:

str

author

Member type thumbnail of the media uploader

Type:

Thumbnail

duration

Duration of the media in seconds, 0 if it’s an image

Type:

datetime.timedelta

size

Size of the files in bytes

Type:

int

views

Total amount of views

Type:

int

today

Amount of views today

Type:

int

filename

The name of the file for the media

Type:

str

fileurl

The url of the file for the media

Type:

str

category

Whether the media is an image, a video or an audio

Type:

MediaCategory

description

The description of the file as given by the file uploader.

Type:

str

get_comments(index=1, *, show_deleted=False)

Used to get comments on the model regardless of what page they may be present in. The function itself simply relies on two other to make the request and parse the table.

Parameters:
  • index (int) – The page of the model to get the comments for.

  • show_deleted (Optional[bool]) – Pass true to show deleted user comments. Only works if it is a page you have permissions on.

Returns:

A list-like object containing the comments and additional methods

Return type:

CommentList[Comment]

save(file_obj)[source]

Save the media to an object.

Parameters:

file_obj (BinaryIO) – The file obj to save the file to. The binary data will be streamed to that object.

Article

class moddb.pages.Article(html)[source]

This object represents an news article, a tutorial or a feature.

Parameters:

html (bs4.BeautifulSoup) – The html to parse. Allows for finer control.

Filtering

categoryArticleCategory

Type of the article (news, feature)

timeframeTimeFrame

The time period this was released in (last 24hr, last week, last month)

gameUnion[Game, Object]

An game object or an object with an id attribute which represents the game the article belongs to.

Sorting

  • ranktoday - order by daily ranking, asc is highest ranked, desc is lowest rank

  • visitstotal - order by most views, asc is highest views, desc is lowest views

  • dateup - order by article date, asc is most recent first, desc is oldest first

  • name - order alphabetically, asc is a-z, desc is z-a

  • member - order by member???

  • date - order by upload date, asc is most recent first, desc is oldest first

Exclusive to tutorials * meta - sort by difficulty, asc is most difficult, desc is least difficult * subtype - sort by the area the tutorial covers

id

The id of the page

Type:

int

name_id

The name_id of the entity, cannot be changed, it’s a mix of the original username lowercased with spaces removed and shortened.

Type:

str

url

The url of the page

Type:

str

comments

The comments scrapped on this list in order.

Type:

CommentList[Comment]

report

URL to report the page

Type:

str

category

Whether this article is a news article, a tutorial or a feature

Type:

ArticleCategory

name

The name of the article

Type:

str

profile

The profile object of the moddb model the article is for (engine, game, mod…). Can be none if it is not rattached to anything, such as for site news.

Type:

Profile

tags

A list of partial tags. You can use get_tags and then use the name id to get the right one.

Type:

List[PartialTag]

views

Total amount of times this article was viewed

Type:

int

today

amount of time the article has been viewed today

Type:

int

intro

The intro/teaser paragraph of the article

Type:

int

author

A member type thumbnail of the member who published the article

Type:

Thumbnail

date

The date the article was published

Type:

datetime.datetime

html

The html of the article

Type:

str

plaintext

The article text without any html

Type:

str

summary

plaintext intro to the article

Type:

str

tutorial_category

If the article category is tutorial, this represents the area the tutorial covers, else it is None

Type:

TutorialCategory

difficulty

If the article category is tutorial, this represents how hard the tutorial is.

Type:

Difficulty

get_comments(index=1, *, show_deleted=False)

Used to get comments on the model regardless of what page they may be present in. The function itself simply relies on two other to make the request and parse the table.

Parameters:
  • index (int) – The page of the model to get the comments for.

  • show_deleted (Optional[bool]) – Pass true to show deleted user comments. Only works if it is a page you have permissions on.

Returns:

A list-like object containing the comments and additional methods

Return type:

CommentList[Comment]

Team

class moddb.pages.Team(html)[source]

A team is a group of people, which are the author of a game, a mod or an engine. A group has members which all have rights on those page. Like a member but instead of a single person authoring various mods and games it’s several.

Parameters:

html (bs4.BeautifulSoup) – The html to parse. Allows for finer control.

Filtering

subscriptionsMembership

The subscription system of the company (private, invitation)

categoryTeamCategory

What does the team do (publisher, developer)

Sorting

  • id - order by creation, desc is most recent first, asc is oldest first

  • ranktoday - order by daily ranking, asc is highest ranked, desc is lowest rank

  • visitstotal - order by most views, asc is highest views, desc is lowest views

  • name - order alphabetically, asc is a-z, desc is z-a

  • game - order by game???

  • dateup - order by latest update, asc is most recent update first, desc is oldest update first

id

The id of the page

Type:

int

name_id

The name_id of the entity, cannot be changed, it’s a mix of the original username lowercased with spaces removed and shortened.

Type:

str

url

The url of the page

Type:

str

comments

The comments scrapped on this list in order.

Type:

CommentList[Comment]

report

URL to report the page

Type:

str

id

The id of the page

Type:

int

name_id

The name_id of the entity, cannot be changed, it’s a mix of the original username lowercased with spaces removed and shortened.

Type:

str

url

The url of the page

Type:

str

comments

The comments scrapped on this list in order.

Type:

CommentList[Comment]

report

URL to report the page

Type:

str

name

The name of the group

Type:

str

private

Whether or not the group is private

Type:

bool

profile

The profile object for the group

Type:

Profile

stats

The stats of the Group

Type:

Statistics

tags

A list of partial tags. You can use get_tags and then use the name id to get the right one.

Type:

List[PartialTag]

embed

The html for athe group embed

Type:

str

medias

A list of media like thumbnail objects representing all the images, videos and audio clips that a group has published.

Type:

List[Thumbnail]

suggestions

A list of group like thumbnail objects representing the suggestions made by moddb to members visiting this group

Type:

List[Thumbnail]

articles

A list of article like thumbnail objects representing some of the articles published by the group

Type:

List[Thumbnail]

description

The plaintext description of the group

Type:

str

games

A list of game like thumbnails that the team has authored.

Type:

List[Thumbnail]

engines

A list of engine like objects that the team has authored.

Type:

List[Thumbnail]

get_addons(index=1, *, query=None, addon_type=None, timeframe=None, licence=None, sort=None)

Get a page of addons for the page. Each page will yield up to 30 addons.

Parameters:
  • index (Optional[int]) – The page number to get the addons from.

  • query (Optional[str]) – The string query to search for in the addon name, optional.

  • addon_type (Optional[AddonCategory]) – Type enum defining what category the file is.

  • timeframe (Optional[TimeFrame]) – Time frame of when the file was added, optional

  • licence (Optional[Licence]) – The licence for the addon, optional

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of addon type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_articles(index=1, *, query=None, category=None, timeframe=None, sort=None)

Get a page of articles for the page. Each page will yield up to 30 articles.

Parameters:
  • index (Optional[int]) – The page number to get the articles from.

  • query (Optional[str]) – The string query to search for in the article name, optional.

  • category (Optional[ArticleCategory]) – Type enum defining what the article is, optional

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of article type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_comments(index=1, *, show_deleted=False)

Used to get comments on the model regardless of what page they may be present in. The function itself simply relies on two other to make the request and parse the table.

Parameters:
  • index (int) – The page of the model to get the comments for.

  • show_deleted (Optional[bool]) – Pass true to show deleted user comments. Only works if it is a page you have permissions on.

Returns:

A list-like object containing the comments and additional methods

Return type:

CommentList[Comment]

get_engines(index=1, *, query=None, status=None, licence=None, timeframe=None, sort=None)

Get a page of engines for the game. Each page will yield up to 30 engines.

Parameters:
  • index (int) – The page number to get the engines from.

  • query (Optional[str]) – The text to look for in the engine names.

  • status (Optional[Status]) – The status of the game (unreleased, released, early access, ect…)

  • licence (Optional[Licence]) – The licence of the engine (open source, proprietary, ect…)

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of engine type thumbnails parsed from the game

Return type:

ResultList[Thumbnail]

get_files(index=1, *, query=None, category=None, addon_type=None, timeframe=None, sort=None)

Get a page of files for the page. Each page will yield up to 30 files.

Parameters:
  • index (Optional[int]) – The page number to get the files from.

  • query (Optional[str]) – The string query to search for in the file name, optional.

  • category ([FileCategory]) – Type enum defining what the file is, optional

  • addon_type (Optional[AddonCategory]) – Type enum defining what category the file is.

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of file type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_games(index=1, *, query=None, status=None, genre=None, theme=None, scope=None, players=None, timeframe=None, sort=None)

Get a page of games for the model. Each page will yield up to 30 games.

Parameters:
  • index (Optional[int]) – The page number to get the games for.

  • query (Optional[str]) – The text to look for in the game names.

  • status (Optional[Status]) – The status of the game (unreleased, released, early access, ect…)

  • genre (Optional[Genre]) – The genre of the game (fps, tower defense)

  • theme (Optional[Theme]) – The theme of the game (fantasy, action)

  • scope (Optional[Scope]) – The scope of the game (AAA, indie)

  • players (Optional[PlayerStyle]) – Player styles of the game (co-op, singleplayer)

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

List of game like thumbnails that can be parsed individually.

Return type:

ResultList[Thumbnail]

get_hardware(index=1, *, query=None, status=None, category=None, timeframe=None, sort=None)

Get a page of hardware for the platform. Each page will yield up to 30 hardware.

Parameters:
  • index (Optional[int]) – The page number to get the hardware for.

  • query (Optional[str]) – The text to look for in the hardware’s names

  • status (Optional[Status]) – Status of the hardware (released, unreleased, early access…)

  • category (Optional[HardwareCategory]) – Category of the hardware (headset, controller, ect…)

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by

Returns:

List of hardware like thumbnails that can be parsed individually.

Return type:

ResultList[Thumbnail]

get_images()

Get all the images a page has uploaded. Literally all of them. As thumbnails. ModDB’s imagebox caches all the urls for images on the page so this grabs them all. Lists might be long, but this is all the images. They can be invidually parsed to get full fledged media objects from them.

Returns:

The list of image type thumbnails parsed from the page

Return type:

List[Thumbnail]

get_mods(index=1, *, query=None, status=None, genre=None, theme=None, players=None, timeframe=None, game=None, sort=None)

Get a page of mods for the game. Each page will yield up to 30 mods.

Parameters:
  • index (int) – The page number to get the mods from.

  • query (Optional[str]) – The text to look for in the mod names.

  • status (Optional[Status]) – The status of the mod (unreleased, released, early access, ect…)

  • genre (Optional[Genre]) – The genre of the mod (fps, tower defense)

  • theme (Optional[Theme]) – The theme of the mod (fantasy, action)

  • players (Optional[PlayerStyle]) – Player styles of the mod (co-op, singleplayer)

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • game (Union[mod, Object]) – An mod object or an object with an id attribute which represents the mod the mod belongs to.

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of mods type thumbnails parsed from the game

Return type:

ResultList[Thumbnail]

get_reviews = None
get_software(index=1, *, query=None, status=None, category=None, timeframe=None, sort=None)

Get a page of software for the platform. Each page will yield up to 30 software.

Parameters:
  • index (Optional[int]) – The page number to get the software for.

  • query (Optional[str]) – The text to look for in the hardware’s names

  • status (Optional[Status]) – Status of the hardware (released, unreleased, early access…)

  • category (Optional[SoftwareCategory]) – Category of the hardware (headset, controller, ect…)

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by

Returns:

List of software like thumbnails that can be parsed individually.

Return type:

ResultList[Thumbnail]

get_tags()

Get more tags for a page.

Returns:

List of returned tags

Return type:

List[Tag]

get_tutorials(index=1, *, query=None, difficulty=None, tutorial_type=None, sort=None)

Get a page of tutorial for the page. Each page will yield up to 30 tutorials.

Parameters:
  • index (Optional[int]) – The page number to get the tutorials from.

  • query (Optional[str]) – The string query to look for in the tutorial title, optional.

  • difficulty (Optional[Difficulty]) – Enum type representing the difficulty of the tutorial, optional.

  • tutorial_type (Optional[TutorialCategory]) – Enum type representing the theme/type/category of the tutorial, optional.

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of article type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_videos()

Get all the videos a page has uploaded. Literally all of them. As thumbnails. ModDB’s imagebox caches all the urls for videos on the page so this grabs them all. Lists might be long, but this is all the videos. They can be invidually parsed to get full fledged media objects from them.

Returns:

The list of video type thumbnails parsed from the page

Return type:

List[Thumbnail]

get_watchers(index=1, *, query=None, sort=None)

Get a page of watchers for the page. Each page will yield up to 30 members.

Parameters:
  • index (Optional[int]) – The page number to get the watchers from.

  • query (Optional[str]) – The string query to search for in the watcher name, optional.

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of member type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

rss(type)

Get the RSS feed url for the page depending on which feed type you want

Parameters:

type (RSSType) – The type of feed you desire to get

Returns:

URL for the feed type

Return type:

str

Group

class moddb.pages.Group(html)[source]

This object represents the group model of Certain attributes can be None if the group has been set to private. If you wish to see a group you have access to then you can login with the login

Parameters:

html (bs4.BeautifulSoup) – The html to parse. Allows for finer control.

Filtering

subscriptionsMembership

The subscription system of the group (private, invitation)

categoryGroupCategory

The category of the group (funny, literature)

Sorting

  • id - order group by date, asc is most recent first, desc is oldest first

  • ranktoday - order by daily ranking, asc is highest ranked, desc is lowest rank

  • visitstotal - order by most views, asc is highest views, desc is lowest views

  • name - order alphabetically, asc is a-z, desc is z-a

  • membercount - order by number of members, asc is most members first, desc is lest member first

id

The id of the page

Type:

int

name_id

The name_id of the entity, cannot be changed, it’s a mix of the original username lowercased with spaces removed and shortened.

Type:

str

url

The url of the page

Type:

str

comments

The comments scrapped on this list in order.

Type:

CommentList[Comment]

report

URL to report the page

Type:

str

name

The name of the group

Type:

str

private

Whether or not the group is private

Type:

bool

profile

The profile object for the group

Type:

Profile

stats

The stats of the Group

Type:

Statistics

tags

A list of partial tags. You can use get_tags and then use the name id to get the right one.

Type:

List[PartialTag]

embed

The html for athe group embed

Type:

str

medias

A list of media like thumbnail objects representing all the images, videos and audio clips that a group has published.

Type:

List[Thumbnail]

suggestions

A list of group like thumbnail objects representing the suggestions made by moddb to members visiting this group

Type:

List[Thumbnail]

articles

A list of article like thumbnail objects representing some of the articles published by the group

Type:

List[Thumbnail]

description

The plaintext description of the group

Type:

str

get_addons(index=1, *, query=None, addon_type=None, timeframe=None, licence=None, sort=None)

Get a page of addons for the page. Each page will yield up to 30 addons.

Parameters:
  • index (Optional[int]) – The page number to get the addons from.

  • query (Optional[str]) – The string query to search for in the addon name, optional.

  • addon_type (Optional[AddonCategory]) – Type enum defining what category the file is.

  • timeframe (Optional[TimeFrame]) – Time frame of when the file was added, optional

  • licence (Optional[Licence]) – The licence for the addon, optional

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of addon type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_articles(index=1, *, query=None, category=None, timeframe=None, sort=None)

Get a page of articles for the page. Each page will yield up to 30 articles.

Parameters:
  • index (Optional[int]) – The page number to get the articles from.

  • query (Optional[str]) – The string query to search for in the article name, optional.

  • category (Optional[ArticleCategory]) – Type enum defining what the article is, optional

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of article type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_comments(index=1, *, show_deleted=False)

Used to get comments on the model regardless of what page they may be present in. The function itself simply relies on two other to make the request and parse the table.

Parameters:
  • index (int) – The page of the model to get the comments for.

  • show_deleted (Optional[bool]) – Pass true to show deleted user comments. Only works if it is a page you have permissions on.

Returns:

A list-like object containing the comments and additional methods

Return type:

CommentList[Comment]

get_files(index=1, *, query=None, category=None, addon_type=None, timeframe=None, sort=None)

Get a page of files for the page. Each page will yield up to 30 files.

Parameters:
  • index (Optional[int]) – The page number to get the files from.

  • query (Optional[str]) – The string query to search for in the file name, optional.

  • category ([FileCategory]) – Type enum defining what the file is, optional

  • addon_type (Optional[AddonCategory]) – Type enum defining what category the file is.

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of file type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_images()

Get all the images a page has uploaded. Literally all of them. As thumbnails. ModDB’s imagebox caches all the urls for images on the page so this grabs them all. Lists might be long, but this is all the images. They can be invidually parsed to get full fledged media objects from them.

Returns:

The list of image type thumbnails parsed from the page

Return type:

List[Thumbnail]

get_reviews = None
get_tags()

Get more tags for a page.

Returns:

List of returned tags

Return type:

List[Tag]

get_tutorials(index=1, *, query=None, difficulty=None, tutorial_type=None, sort=None)

Get a page of tutorial for the page. Each page will yield up to 30 tutorials.

Parameters:
  • index (Optional[int]) – The page number to get the tutorials from.

  • query (Optional[str]) – The string query to look for in the tutorial title, optional.

  • difficulty (Optional[Difficulty]) – Enum type representing the difficulty of the tutorial, optional.

  • tutorial_type (Optional[TutorialCategory]) – Enum type representing the theme/type/category of the tutorial, optional.

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of article type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_videos()

Get all the videos a page has uploaded. Literally all of them. As thumbnails. ModDB’s imagebox caches all the urls for videos on the page so this grabs them all. Lists might be long, but this is all the videos. They can be invidually parsed to get full fledged media objects from them.

Returns:

The list of video type thumbnails parsed from the page

Return type:

List[Thumbnail]

get_watchers(index=1, *, query=None, sort=None)

Get a page of watchers for the page. Each page will yield up to 30 members.

Parameters:
  • index (Optional[int]) – The page number to get the watchers from.

  • query (Optional[str]) – The string query to search for in the watcher name, optional.

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of member type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

rss(type)

Get the RSS feed url for the page depending on which feed type you want

Parameters:

type (RSSType) – The type of feed you desire to get

Returns:

URL for the feed type

Return type:

str

Job

class moddb.pages.Job(html)[source]

Model representing a job proposed on ModDB

Parameters:

html (bs4.BeautifulSoup) – The html to parse. Allows for finer control.

Filtering

skillJobSkill

The job skill looked for

earnbool

Whether or not the job is paid

Sorting

  • location - order by the location of the job

  • name - order alphabetically, asc is a-z, desc is z-a

  • skill - order by the skill required

  • id - order by upload date, asc is most recent, desc is oldest first

id

id of the job

Type:

int

name_id

The name_id of the member, cannot be changed, it’s a mix of the original username lowercased with spaces removed and shortened.

Type:

str

author

A member like thumbnail representing the poster of the job. Can be none if they desire to remain private.

Type:

Thumbnail

paid

Whether or not the job is paid

Type:

bool

tags

A list of partial tags. You can use get_tags and then use the name id to get the right one.

Type:

List[PartialTag]

skill

the skill demanded for the job

Type:

JobSkill

location

The location the job will be at

Type:

str

name

The name of the job

Type:

str

text

The description of the job

Type:

str

related

A list of team like thumbnails of companies related to the job poster

Type:

List[Thumbnail]

Blog

class moddb.pages.Blog(*, heading, text)[source]

Object used to represent a member blog.

Filtering

timeframeTimeFrame

The time period this was released in (last 24hr, last week, last month)

Sorting

  • ranktoday - order by daily ranking, asc is highest ranked, desc is lowest rank

  • visitstotal - order by most views, asc is highest views, desc is lowest views

  • dateup - order by blog date, asc is most recent first, desc is oldest first

  • name - order alphabetically, asc is a-z, desc is z-a

  • member - order by member???

  • date - order by upload date, asc is most recent first, desc is oldest first

name_id

The name_id of the member, cannot be changed, it’s a mix of the original username lowercased with spaces removed and shortened.

Type:

str

get_comments(index=1, *, show_deleted=False)

Used to get comments on the model regardless of what page they may be present in. The function itself simply relies on two other to make the request and parse the table.

Parameters:
  • index (int) – The page of the model to get the comments for.

  • show_deleted (Optional[bool]) – Pass true to show deleted user comments. Only works if it is a page you have permissions on.

Returns:

A list-like object containing the comments and additional methods

Return type:

CommentList[Comment]

Member

class moddb.pages.Member(html)[source]

The object to represent an individual member on ModDB

Parameters:

html (bs4.BeautifulSoup) – The html to parse. Allows for finer control.

Sorting

  • username - sort alphabetically by username, asc is z-a and desc is a-z

  • id - sort by member creation date, asc is most recent, desc is oldest

  • online - sort by last online, asc is most recently seen online and desc is least recently

id

The id of the page

Type:

int

name_id

The name_id of the entity, cannot be changed, it’s a mix of the original username lowercased with spaces removed and shortened.

Type:

str

url

The url of the page

Type:

str

comments

The comments scrapped on this list in order.

Type:

CommentList[Comment]

report

URL to report the page

Type:

str

name

The name of the page

Type:

str

profile

The object with the content of the page’s profile box.

Type:

Profile

stats

The object containg stat data on the page such as views, followers, ect…

Type:

Statistics

style

The object containing data relevant to the type of the page, not valid for Engines. Multiplayer, singleplayer, ect…

Type:

Style

suggestions

A list of thumbnail object representing moddb’s suggestion of similar pages for the visiting member.

Type:

List[Thumbnail]

files

A list of thumbnails representing a possible partial list of all the files. To get a guaranteed full list either compare with statistics.files to see if the length of the list matches the number of files in the stats or use get_files, although that will still not return the whole list if there are multiple pages of files.

Type:

List[Thumbnail]

articles

A list of thumbnail objects representing articles present on the page. Usually 3 or 4 articles long.

Type:

List[Thumbnail]

article

A partial representation of the frong page article. This does not include things like comments or any of the sideba elements found in a full article. Can be parsed to return the complete Article object.

Type:

PartialArticle

tags

A list of partial tags. You can use get_tags and then use the name id to get the right one.

Type:

List[PartialTag]

imagebox

A list of Thumbnail objects representing the image, videos and audio clips that are presented in the image box on the front page.

Type:

List[Thumbnail]

embed

The html necessary to embed the a widget of the page.

Type:

str

rating

A float out of ten representing the average rating for the page

Type:

float

medias

list of thumbnails representing all the combined media objects of a page (videos and images)

Type:

List[Thumbnail]

summary

Short description of the page, in plaintext.

Type:

str

description

The full description of the page, contains html

Type:

str

plaintext

Plaintext version of the full description

Type:

str

profile

Since member profile boxes have no overlap with other profiles, they are a separate object type but serve the same function of making the side box “Profile” into an object, except exclusively for a member page.

Type:

MemberProfile

stats

Since member statistics have no overlap with regular statistic pages, they are a separate object type but serve the same function of making the side box “Statistics” into an object, but exclusively for the member page.

Type:

MemberStatistics

description

Description written on the member profile

Type:

str

groups

A list of group/team like thumbnail objects representing both the Teams the member is part of and the Groups the member is part of.

Type:

List[Thumbnail]

blog

The front page blog shown on the member page

Type:

Blog

blogs

A list of blog like thumbnails representing the blog suggestion of a member’s frontpage

Type:

List[Thumbnail]

friends

A list of member like thumbnails representing some of the friends shown on the member’s front page

Type:

List[Thumnails]

get_addons(index=1, *, query=None, addon_type=None, timeframe=None, licence=None, sort=None)

Get a page of addons for the page. Each page will yield up to 30 addons.

Parameters:
  • index (Optional[int]) – The page number to get the addons from.

  • query (Optional[str]) – The string query to search for in the addon name, optional.

  • addon_type (Optional[AddonCategory]) – Type enum defining what category the file is.

  • timeframe (Optional[TimeFrame]) – Time frame of when the file was added, optional

  • licence (Optional[Licence]) – The licence for the addon, optional

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of addon type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_articles(index=1, *, query=None, category=None, timeframe=None, sort=None)

Get a page of articles for the page. Each page will yield up to 30 articles.

Parameters:
  • index (Optional[int]) – The page number to get the articles from.

  • query (Optional[str]) – The string query to search for in the article name, optional.

  • category (Optional[ArticleCategory]) – Type enum defining what the article is, optional

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of article type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_blogs(index=1, *, query=None, timeframe=None, sort=None)[source]

Search through a member’s blogs one page at a time with certain filters.

Parameters:
  • index (int) – The page index you wish to get the blogs for, allows to hop around.

  • timeframe (TimeFrame) – The date the blog was added, optional

  • query (str) – The string to look for in the blog title, optional.

  • sort (Tuple[str, str]) – The sorting tuple to sort by

Returns:

The list of blogs on this page.

Return type:

ResultList[Blog]

get_comments(index=1, *, show_deleted=False)

Used to get comments on the model regardless of what page they may be present in. The function itself simply relies on two other to make the request and parse the table.

Parameters:
  • index (int) – The page of the model to get the comments for.

  • show_deleted (Optional[bool]) – Pass true to show deleted user comments. Only works if it is a page you have permissions on.

Returns:

A list-like object containing the comments and additional methods

Return type:

CommentList[Comment]

get_files(index=1, *, query=None, category=None, addon_type=None, timeframe=None, sort=None)

Get a page of files for the page. Each page will yield up to 30 files.

Parameters:
  • index (Optional[int]) – The page number to get the files from.

  • query (Optional[str]) – The string query to search for in the file name, optional.

  • category ([FileCategory]) – Type enum defining what the file is, optional

  • addon_type (Optional[AddonCategory]) – Type enum defining what category the file is.

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of file type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_friends(index=1, *, username=None)[source]

Get a page of the friends of the member

Parameters:
  • index (int) – The page number to get the friends from.

  • username (Optional[str]) – The username of the user you are looking for

Returns:

A list of member like thumbnails of the member’s friends

Return type:

ResultList[Thumbnail]

get_games(index=1, *, query=None, status=None, genre=None, theme=None, scope=None, players=None, timeframe=None, sort=None)

Get a page of games for the model. Each page will yield up to 30 games.

Parameters:
  • index (Optional[int]) – The page number to get the games for.

  • query (Optional[str]) – The text to look for in the game names.

  • status (Optional[Status]) – The status of the game (unreleased, released, early access, ect…)

  • genre (Optional[Genre]) – The genre of the game (fps, tower defense)

  • theme (Optional[Theme]) – The theme of the game (fantasy, action)

  • scope (Optional[Scope]) – The scope of the game (AAA, indie)

  • players (Optional[PlayerStyle]) – Player styles of the game (co-op, singleplayer)

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

List of game like thumbnails that can be parsed individually.

Return type:

ResultList[Thumbnail]

get_groups(index=1, *, query=None, subscription=None, category=None)[source]

Get a page of the groups and teams a member is part of.

Parameters:
  • index (int) – The page number to get the friends from.

  • query (Optional[str]) – The text to look for in the group’s name

  • subscription (Optional[Membership]) – The membership rules

  • category (Optional[GroupCategory]) – The category of groups to search for

Returns:

A list of team/group like thumbnails the member is part of

Return type:

ResultList[Thumbnail]

get_images()

Get all the images a page has uploaded. Literally all of them. As thumbnails. ModDB’s imagebox caches all the urls for images on the page so this grabs them all. Lists might be long, but this is all the images. They can be invidually parsed to get full fledged media objects from them.

Returns:

The list of image type thumbnails parsed from the page

Return type:

List[Thumbnail]

get_member_comments(index=1, *, show_deleted=False)[source]

Gets a page of all the comments a member has posted.

Parameters:
  • index (int) – The page number to get the comments from.

  • show_deleted (Optional[bool]) – Pass true to show deleted user comments. Only works if it is a page you have permissions on.

Returns:

A list of the comments made by the user.

Return type:

CommentList[Comment]

get_mods(index=1, *, query=None, status=None, genre=None, theme=None, players=None, timeframe=None, game=None, sort=None)

Get a page of mods for the game. Each page will yield up to 30 mods.

Parameters:
  • index (int) – The page number to get the mods from.

  • query (Optional[str]) – The text to look for in the mod names.

  • status (Optional[Status]) – The status of the mod (unreleased, released, early access, ect…)

  • genre (Optional[Genre]) – The genre of the mod (fps, tower defense)

  • theme (Optional[Theme]) – The theme of the mod (fantasy, action)

  • players (Optional[PlayerStyle]) – Player styles of the mod (co-op, singleplayer)

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • game (Union[mod, Object]) – An mod object or an object with an id attribute which represents the mod the mod belongs to.

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of mods type thumbnails parsed from the game

Return type:

ResultList[Thumbnail]

get_reviews(index=1, *, query=None, rating=None, sort=None)

Get a page of reviews for the page. Each page will yield up to 10 reviews.

Parameters:
  • index (Optional[int]) – The page number to get the reviews from.

  • query (Optional[str]) – The string to look for in the review, optional.

  • rating (Optiona[int]) – A number between 1 and 10 to get the ratings

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of reviews parsed from the page

Return type:

ResultList[Review]

get_tags()

Get more tags for a page.

Returns:

List of returned tags

Return type:

List[Tag]

get_tutorials(index=1, *, query=None, difficulty=None, tutorial_type=None, sort=None)

Get a page of tutorial for the page. Each page will yield up to 30 tutorials.

Parameters:
  • index (Optional[int]) – The page number to get the tutorials from.

  • query (Optional[str]) – The string query to look for in the tutorial title, optional.

  • difficulty (Optional[Difficulty]) – Enum type representing the difficulty of the tutorial, optional.

  • tutorial_type (Optional[TutorialCategory]) – Enum type representing the theme/type/category of the tutorial, optional.

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of article type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_videos()

Get all the videos a page has uploaded. Literally all of them. As thumbnails. ModDB’s imagebox caches all the urls for videos on the page so this grabs them all. Lists might be long, but this is all the videos. They can be invidually parsed to get full fledged media objects from them.

Returns:

The list of video type thumbnails parsed from the page

Return type:

List[Thumbnail]

get_watchers(index=1, *, query=None, sort=None)

Get a page of watchers for the page. Each page will yield up to 30 members.

Parameters:
  • index (Optional[int]) – The page number to get the watchers from.

  • query (Optional[str]) – The string query to search for in the watcher name, optional.

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of member type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

rss(type)

Get the RSS feed url for the page depending on which feed type you want

Parameters:

type (RSSType) – The type of feed you desire to get

Returns:

URL for the feed type

Return type:

str

FrontPage

class moddb.pages.FrontPage(html)[source]

An object representing the front page of More of less just a long suggestion of the hottest mods, games, articles and files of the moment

Parameters:

html (bs4.BeautifulSoup) – The html to parse. Allows for finer control.

slider

A list of object like thumbnails presented by the slider present on the front page, this is a catered list of promoted content, can contain any type of object.

Type:

List[Thumnail]

articles

A list of article like thumbnail objects representing the suggested articles on the front page.

Type:

List[Thumbnail]

mods

A list of mod like thumbnail objects representing the suggested mods on the front page.

Type:

List[Thumbnail]

games

A list of game like thumbnail objects representing the suggested games on the front page.

Type:

List[Thumbnail]

files

A list of file like thumbnail objects representing the suggested files on the front page.

Type:

List[Thumbnail]

get_poll()[source]

Get the full item of the front page poll. This result is cached after the first call.

Returns:

The returned poll

Return type:

Poll

Review

class moddb.pages.Review(**attrs)[source]

Represents a review.

Filtering

ratingint

A value from 1 to 10 denoting the rating number you’re looking for

siteareaCategory

The type of model the rating is for (mod, engine, game)

Sorting

  • ratingalt - rating number, desc is biggest to lowest, asc is lowest to biggest

  • memberipid - sort reviewer account age, asc is oldest reviewer first

  • positive - how many people agree with it, desc is most to least people agreeing

  • negative - how many people disagree with it, desc is most to least people disagreeing

  • id - when it was added to moddb, asc is oldest, desc is most recent

id

The review id

Type:

int

text

The contents of the review. Can be none if the member hasn’t left any

Type:

str

rating

An int out of 10 representing the rating left with this review.

Type:

int

author

A member like thumbnail of the member who left the review

Type:

Thumbnail

date

Date and time of the review creation

Type:

datetime.datetime

agree

Link to agree with the review

Type:

str

disagree

Link to disagree with the review

Type:

str

Platform

class moddb.pages.Platform(html)[source]

Represents the platform supporting the game/engines. Game and engines may have mutiple platforms.

Parameters:

html (bs4.BeautifulSoup) – The html to parse. Allows for finer control.

Filtering

releasedStatus

Current status of release (unreleased, early access, ect…)

Sorting

  • released - when the object was released, asc is oldest, desc is most recent

  • id - when it was added to moddb, asc is oldest, desc is most recent

  • porder - what plaform it’s on???

  • company - company that made it in alphabetical order

name

The name of the platform

Type:

str

name_id

The name_id of the member, cannot be changed, it’s a mix of the original username lowercased with spaces removed and shortened.

Type:

str

id

The moddb id of the platform

Type:

int

url

The url of the platform page

Type:

str

description

Description of the platform

Type:

str

company

A team like thumbnail of the company.

Type:

Thumbnail

homepage

Link to the homepage of the engine

Type:

str

date

Date the engine was published

Type:

datetime.datetime

stats

Stat data on the platform

Type:

PlatformStatistics

share

Share link of the platform with the name of the share as key and link of the share as url.

Type:

dict{str : str}

comments

Comments on this page

Type:

CommentList[Comment]

games

A list of games suggested on the platform main page.

Type:

List[Thumbnail]

hardware

A list of hardware suggested on the platform main page.

Type:

List[Thumbnail]

software

A list of software suggested on the platform main page.

Type:

List[Thumbnail]

engines

A list of engines suggested on the platform main page.

Type:

List[Thumbnail]

mods

A list of mods suggested on the platform main page.

Type:

List[Thumbnail]

get_comments(index=1, *, show_deleted=False)

Used to get comments on the model regardless of what page they may be present in. The function itself simply relies on two other to make the request and parse the table.

Parameters:
  • index (int) – The page of the model to get the comments for.

  • show_deleted (Optional[bool]) – Pass true to show deleted user comments. Only works if it is a page you have permissions on.

Returns:

A list-like object containing the comments and additional methods

Return type:

CommentList[Comment]

get_engines(index=1, *, query=None, status=None, licence=None, timeframe=None, sort=None)

Get a page of engines for the game. Each page will yield up to 30 engines.

Parameters:
  • index (int) – The page number to get the engines from.

  • query (Optional[str]) – The text to look for in the engine names.

  • status (Optional[Status]) – The status of the game (unreleased, released, early access, ect…)

  • licence (Optional[Licence]) – The licence of the engine (open source, proprietary, ect…)

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of engine type thumbnails parsed from the game

Return type:

ResultList[Thumbnail]

get_games(index=1, *, query=None, status=None, genre=None, theme=None, scope=None, players=None, timeframe=None, sort=None)

Get a page of games for the model. Each page will yield up to 30 games.

Parameters:
  • index (Optional[int]) – The page number to get the games for.

  • query (Optional[str]) – The text to look for in the game names.

  • status (Optional[Status]) – The status of the game (unreleased, released, early access, ect…)

  • genre (Optional[Genre]) – The genre of the game (fps, tower defense)

  • theme (Optional[Theme]) – The theme of the game (fantasy, action)

  • scope (Optional[Scope]) – The scope of the game (AAA, indie)

  • players (Optional[PlayerStyle]) – Player styles of the game (co-op, singleplayer)

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

List of game like thumbnails that can be parsed individually.

Return type:

ResultList[Thumbnail]

get_hardware(index=1, *, query=None, status=None, category=None, timeframe=None, sort=None)

Get a page of hardware for the platform. Each page will yield up to 30 hardware.

Parameters:
  • index (Optional[int]) – The page number to get the hardware for.

  • query (Optional[str]) – The text to look for in the hardware’s names

  • status (Optional[Status]) – Status of the hardware (released, unreleased, early access…)

  • category (Optional[HardwareCategory]) – Category of the hardware (headset, controller, ect…)

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by

Returns:

List of hardware like thumbnails that can be parsed individually.

Return type:

ResultList[Thumbnail]

get_mods(index=1, *, query=None, status=None, genre=None, theme=None, players=None, timeframe=None, game=None, sort=None)

Get a page of mods for the game. Each page will yield up to 30 mods.

Parameters:
  • index (int) – The page number to get the mods from.

  • query (Optional[str]) – The text to look for in the mod names.

  • status (Optional[Status]) – The status of the mod (unreleased, released, early access, ect…)

  • genre (Optional[Genre]) – The genre of the mod (fps, tower defense)

  • theme (Optional[Theme]) – The theme of the mod (fantasy, action)

  • players (Optional[PlayerStyle]) – Player styles of the mod (co-op, singleplayer)

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • game (Union[mod, Object]) – An mod object or an object with an id attribute which represents the mod the mod belongs to.

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of mods type thumbnails parsed from the game

Return type:

ResultList[Thumbnail]

get_software(index=1, *, query=None, status=None, category=None, timeframe=None, sort=None)

Get a page of software for the platform. Each page will yield up to 30 software.

Parameters:
  • index (Optional[int]) – The page number to get the software for.

  • query (Optional[str]) – The text to look for in the hardware’s names

  • status (Optional[Status]) – Status of the hardware (released, unreleased, early access…)

  • category (Optional[SoftwareCategory]) – Category of the hardware (headset, controller, ect…)

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by

Returns:

List of software like thumbnails that can be parsed individually.

Return type:

ResultList[Thumbnail]

Poll

class moddb.pages.Poll(html)[source]

Represents a poll. Cannot be voted for due to restrictions implemented by the website.

Parameters:

html (bs4.BeautifulSoup) – The html to parse. Allows for finer control.

Filtering

monthMonth

The month the poll you’re looking for should be from

yearint

A int representing a year between 2002 and now. Anything below or above 2002 will always return zero results.

Sorting

  • totalvotes - how many people voted on the poll, desc is most to least

  • name - sort the poll alphabetically by name, asc is a-z

  • date - when it was added to moddb, asc is oldest, desc is most recent

id

The id of the page

Type:

int

name_id

The name_id of the entity, cannot be changed, it’s a mix of the original username lowercased with spaces removed and shortened.

Type:

str

url

The url of the page

Type:

str

comments

The comments scrapped on this list in order.

Type:

CommentList[Comment]

report

URL to report the page

Type:

str

question

The question of the poll

Type:

str

author

A member like thumbnail of the member who posted the poll, usually ModDB staff

Type:

Thumbnail

total

The total number of votes that have been cast

Type:

int

options

The list of available options for the poll

Type:

List[Option]

get_comments(index=1, *, show_deleted=False)

Used to get comments on the model regardless of what page they may be present in. The function itself simply relies on two other to make the request and parse the table.

Parameters:
  • index (int) – The page of the model to get the comments for.

  • show_deleted (Optional[bool]) – Pass true to show deleted user comments. Only works if it is a page you have permissions on.

Returns:

A list-like object containing the comments and additional methods

Return type:

CommentList[Comment]

Software

class moddb.pages.Software(html)[source]

Represents a moddb Software page

Parameters:

html (BeautifulSoup) – The html file to parse, allows for finer control

Filtering

releasedStatus

Release status of the software (released, unreleased, early access)

categorySoftwareCategory

Category of the software

timeframeTimeFrame

How long ago the software was released

Sorting

  • released - when the object was released, asc is oldest, desc is most recent

  • id - when it was added to moddb, asc is oldest, desc is most recent

  • ranktoday - order by daily ranking, asc is highest ranked, desc is lowest rank

  • visitstotal - order by most views, asc is highest views, desc is lowest views

  • rating - order by rating, asc is highest rating, desc is lowest rating

  • category - sort alphebatically by softwarecategory

  • name - order alphabetically, asc is a-z, desc is z-a

  • dateup - order by latest update, asc is most recent update first, desc is oldest update first

id

The id of the page

Type:

int

name_id

The name_id of the entity, cannot be changed, it’s a mix of the original username lowercased with spaces removed and shortened.

Type:

str

url

The url of the page

Type:

str

comments

The comments scrapped on this list in order.

Type:

CommentList[Comment]

report

URL to report the page

Type:

str

description

Description of the page

Type:

str

profile

The page’s profile

Type:

Profile

stats

The page’s stats

Type:

Statistics

rating

The rating of the item

Type:

float

articles

List of article type thumbnails from the recommended articles

Type:

List[Thumbnail]

article

The partial article presented on the front page

Type:

PartialArticle

tags

A list of partial tags. You can use get_tags and then use the name id to get the right one.

Type:

List[PartialTag]

medias

list of thumbnails representing all the combined media objects of a page (videos and images)

Type:

List[Thumbnail]

suggestions

list of suggested software/hardware type thumbnails

Type:

List[Thumbnail]

get_articles(index=1, *, query=None, category=None, timeframe=None, sort=None)

Get a page of articles for the page. Each page will yield up to 30 articles.

Parameters:
  • index (Optional[int]) – The page number to get the articles from.

  • query (Optional[str]) – The string query to search for in the article name, optional.

  • category (Optional[ArticleCategory]) – Type enum defining what the article is, optional

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of article type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_comments(index=1, *, show_deleted=False)

Used to get comments on the model regardless of what page they may be present in. The function itself simply relies on two other to make the request and parse the table.

Parameters:
  • index (int) – The page of the model to get the comments for.

  • show_deleted (Optional[bool]) – Pass true to show deleted user comments. Only works if it is a page you have permissions on.

Returns:

A list-like object containing the comments and additional methods

Return type:

CommentList[Comment]

get_files(index=1, *, query=None, category=None, addon_type=None, timeframe=None, sort=None)

Get a page of files for the page. Each page will yield up to 30 files.

Parameters:
  • index (Optional[int]) – The page number to get the files from.

  • query (Optional[str]) – The string query to search for in the file name, optional.

  • category ([FileCategory]) – Type enum defining what the file is, optional

  • addon_type (Optional[AddonCategory]) – Type enum defining what category the file is.

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of file type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_images()

Get all the images a page has uploaded. Literally all of them. As thumbnails. ModDB’s imagebox caches all the urls for images on the page so this grabs them all. Lists might be long, but this is all the images. They can be invidually parsed to get full fledged media objects from them.

Returns:

The list of image type thumbnails parsed from the page

Return type:

List[Thumbnail]

get_reviews(index=1, *, query=None, rating=None, sort=None)

Get a page of reviews for the page. Each page will yield up to 10 reviews.

Parameters:
  • index (Optional[int]) – The page number to get the reviews from.

  • query (Optional[str]) – The string to look for in the review, optional.

  • rating (Optiona[int]) – A number between 1 and 10 to get the ratings

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of reviews parsed from the page

Return type:

ResultList[Review]

get_tags()

Get more tags for a page.

Returns:

List of returned tags

Return type:

List[Tag]

get_tutorials(index=1, *, query=None, difficulty=None, tutorial_type=None, sort=None)

Get a page of tutorial for the page. Each page will yield up to 30 tutorials.

Parameters:
  • index (Optional[int]) – The page number to get the tutorials from.

  • query (Optional[str]) – The string query to look for in the tutorial title, optional.

  • difficulty (Optional[Difficulty]) – Enum type representing the difficulty of the tutorial, optional.

  • tutorial_type (Optional[TutorialCategory]) – Enum type representing the theme/type/category of the tutorial, optional.

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of article type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_videos()

Get all the videos a page has uploaded. Literally all of them. As thumbnails. ModDB’s imagebox caches all the urls for videos on the page so this grabs them all. Lists might be long, but this is all the videos. They can be invidually parsed to get full fledged media objects from them.

Returns:

The list of video type thumbnails parsed from the page

Return type:

List[Thumbnail]

get_watchers(index=1, *, query=None, sort=None)

Get a page of watchers for the page. Each page will yield up to 30 members.

Parameters:
  • index (Optional[int]) – The page number to get the watchers from.

  • query (Optional[str]) – The string query to search for in the watcher name, optional.

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of member type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

rss(type)

Get the RSS feed url for the page depending on which feed type you want

Parameters:

type (RSSType) – The type of feed you desire to get

Returns:

URL for the feed type

Return type:

str

Hardware

class moddb.pages.Hardware(html)[source]

Represents a moddb Hardware page

Parameters:

html (BeautifulSoup) – The html file to parse, allows for finer control

Filtering

releasedStatus

Release status of the hardware (released, unreleased, early access)

categoryHardwareCategory

Category of the hardware

timeframeTimeFrame

How long ago the hardware was released

Sorting

  • released - when the object was released, asc is oldest, desc is most recent

  • id - when it was added to moddb, asc is oldest, desc is most recent

  • ranktoday - order by daily ranking, asc is highest ranked, desc is lowest rank

  • visitstotal - order by most views, asc is highest views, desc is lowest views

  • rating - order by rating, asc is highest rating, desc is lowest rating

  • category - sort alphebatically by hardwarecategory

  • name - order alphabetically, asc is a-z, desc is z-a

  • dateup - order by latest update, asc is most recent update first, desc is oldest update first

id

The id of the page

Type:

int

name_id

The name_id of the entity, cannot be changed, it’s a mix of the original username lowercased with spaces removed and shortened.

Type:

str

url

The url of the page

Type:

str

comments

The comments scrapped on this list in order.

Type:

CommentList[Comment]

report

URL to report the page

Type:

str

description

Description of the page

Type:

str

profile

The page’s profile

Type:

Profile

stats

The page’s stats

Type:

Statistics

rating

The rating of the item

Type:

float

articles

List of article type thumbnails from the recommended articles

Type:

List[Thumbnail]

article

The partial article presented on the front page

Type:

PartialArticle

tags

A list of partial tags. You can use get_tags and then use the name id to get the right one.

Type:

List[PartialTag]

medias

list of thumbnails representing all the combined media objects of a page (videos and images)

Type:

List[Thumbnail]

suggestions

list of suggested software/hardware type thumbnails

Type:

List[Thumbnail]

hardware

A list of hardware suggested on the hardware main page.

Type:

List[Thumbnail]

software

A list of software suggested on the hardware main page.

Type:

List[Thumbnail]

games

A list of games suggested on the hardware main page.

Type:

List[Thumbnail]

history

A list of previous iterations of the hardware

Type:

List[Thumbnail]

recommended

A list of recommended hardwares.

Type:

List[Thumbnail]

get_articles(index=1, *, query=None, category=None, timeframe=None, sort=None)

Get a page of articles for the page. Each page will yield up to 30 articles.

Parameters:
  • index (Optional[int]) – The page number to get the articles from.

  • query (Optional[str]) – The string query to search for in the article name, optional.

  • category (Optional[ArticleCategory]) – Type enum defining what the article is, optional

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of article type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_comments(index=1, *, show_deleted=False)

Used to get comments on the model regardless of what page they may be present in. The function itself simply relies on two other to make the request and parse the table.

Parameters:
  • index (int) – The page of the model to get the comments for.

  • show_deleted (Optional[bool]) – Pass true to show deleted user comments. Only works if it is a page you have permissions on.

Returns:

A list-like object containing the comments and additional methods

Return type:

CommentList[Comment]

get_files(index=1, *, query=None, category=None, addon_type=None, timeframe=None, sort=None)

Get a page of files for the page. Each page will yield up to 30 files.

Parameters:
  • index (Optional[int]) – The page number to get the files from.

  • query (Optional[str]) – The string query to search for in the file name, optional.

  • category ([FileCategory]) – Type enum defining what the file is, optional

  • addon_type (Optional[AddonCategory]) – Type enum defining what category the file is.

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of file type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_games(index=1, *, query=None, status=None, genre=None, theme=None, scope=None, players=None, timeframe=None, sort=None)

Get a page of games for the model. Each page will yield up to 30 games.

Parameters:
  • index (Optional[int]) – The page number to get the games for.

  • query (Optional[str]) – The text to look for in the game names.

  • status (Optional[Status]) – The status of the game (unreleased, released, early access, ect…)

  • genre (Optional[Genre]) – The genre of the game (fps, tower defense)

  • theme (Optional[Theme]) – The theme of the game (fantasy, action)

  • scope (Optional[Scope]) – The scope of the game (AAA, indie)

  • players (Optional[PlayerStyle]) – Player styles of the game (co-op, singleplayer)

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

List of game like thumbnails that can be parsed individually.

Return type:

ResultList[Thumbnail]

get_hardware(index=1, *, query=None, status=None, category=None, timeframe=None, sort=None)

Get a page of hardware for the platform. Each page will yield up to 30 hardware.

Parameters:
  • index (Optional[int]) – The page number to get the hardware for.

  • query (Optional[str]) – The text to look for in the hardware’s names

  • status (Optional[Status]) – Status of the hardware (released, unreleased, early access…)

  • category (Optional[HardwareCategory]) – Category of the hardware (headset, controller, ect…)

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by

Returns:

List of hardware like thumbnails that can be parsed individually.

Return type:

ResultList[Thumbnail]

get_images()

Get all the images a page has uploaded. Literally all of them. As thumbnails. ModDB’s imagebox caches all the urls for images on the page so this grabs them all. Lists might be long, but this is all the images. They can be invidually parsed to get full fledged media objects from them.

Returns:

The list of image type thumbnails parsed from the page

Return type:

List[Thumbnail]

get_reviews(index=1, *, query=None, rating=None, sort=None)

Get a page of reviews for the page. Each page will yield up to 10 reviews.

Parameters:
  • index (Optional[int]) – The page number to get the reviews from.

  • query (Optional[str]) – The string to look for in the review, optional.

  • rating (Optiona[int]) – A number between 1 and 10 to get the ratings

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of reviews parsed from the page

Return type:

ResultList[Review]

get_software(index=1, *, query=None, status=None, category=None, timeframe=None, sort=None)

Get a page of software for the platform. Each page will yield up to 30 software.

Parameters:
  • index (Optional[int]) – The page number to get the software for.

  • query (Optional[str]) – The text to look for in the hardware’s names

  • status (Optional[Status]) – Status of the hardware (released, unreleased, early access…)

  • category (Optional[SoftwareCategory]) – Category of the hardware (headset, controller, ect…)

  • timeframe (Optional[TimeFrame]) – The time period this was released in (last 24hr, last week, last month)

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by

Returns:

List of software like thumbnails that can be parsed individually.

Return type:

ResultList[Thumbnail]

get_tags()

Get more tags for a page.

Returns:

List of returned tags

Return type:

List[Tag]

get_tutorials(index=1, *, query=None, difficulty=None, tutorial_type=None, sort=None)

Get a page of tutorial for the page. Each page will yield up to 30 tutorials.

Parameters:
  • index (Optional[int]) – The page number to get the tutorials from.

  • query (Optional[str]) – The string query to look for in the tutorial title, optional.

  • difficulty (Optional[Difficulty]) – Enum type representing the difficulty of the tutorial, optional.

  • tutorial_type (Optional[TutorialCategory]) – Enum type representing the theme/type/category of the tutorial, optional.

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of article type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

get_videos()

Get all the videos a page has uploaded. Literally all of them. As thumbnails. ModDB’s imagebox caches all the urls for videos on the page so this grabs them all. Lists might be long, but this is all the videos. They can be invidually parsed to get full fledged media objects from them.

Returns:

The list of video type thumbnails parsed from the page

Return type:

List[Thumbnail]

get_watchers(index=1, *, query=None, sort=None)

Get a page of watchers for the page. Each page will yield up to 30 members.

Parameters:
  • index (Optional[int]) – The page number to get the watchers from.

  • query (Optional[str]) – The string query to search for in the watcher name, optional.

  • sort (Optional[Tuple[str, str]]) – The sorting tuple to sort by the results

Returns:

The list of member type thumbnails parsed from the page

Return type:

ResultList[Thumbnail]

rss(type)

Get the RSS feed url for the page depending on which feed type you want

Parameters:

type (RSSType) – The type of feed you desire to get

Returns:

URL for the feed type

Return type:

str