CrackDiggerEngineByM51V5 1.2.0

dotnet add package CrackDiggerEngineByM51V5 --version 1.2.0                
NuGet\Install-Package CrackDiggerEngineByM51V5 -Version 1.2.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="CrackDiggerEngineByM51V5" Version="1.2.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add CrackDiggerEngineByM51V5 --version 1.2.0                
#r "nuget: CrackDiggerEngineByM51V5, 1.2.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install CrackDiggerEngineByM51V5 as a Cake Addin
#addin nuget:?package=CrackDiggerEngineByM51V5&version=1.2.0

// Install CrackDiggerEngineByM51V5 as a Cake Tool
#tool nuget:?package=CrackDiggerEngineByM51V5&version=1.2.0                

CrackDiggerEngine v1.2.0

Overview

The CrackDiggerEngine library is designed to search for game information across several supported sites. It offers methods to retrieve game details and convert data to JSON-like structures.


Table of Contents


Setup

Download from nuget manager

Import the library with:

using CrackDiggerEngineByM51V5;

and use the main class CrackDiggerEngine to use it.


Supported Sites

This library supports searching on the following sites:

Enum Value Site Domain
steamripDotCom steamrip.com
cracked_gamesDotOrg cracked-games.org
fitgirl_repacksDoteSite fitgirl-repacks.site
apunkagamesDotCom apunkagames.com
mrpcgamerDotNet mrpcgamer.net
ovaGamesDotCom ovagames.com
steamUnlockedDotPro steamunlocked.pro

You can access all supported sites programmatically using the getSuporttedSites property, which returns a dictionary.


Classes and Enums

enSiteUri

An enumeration representing the supported sites in this library.

Example:

CrackDiggerEngine.enSiteUri site = CrackDiggerEngine.enSiteUri.steamripDotCom;

clsGameDataObject

Represents a single game entry with the following properties:

  • Title: The title of the game.
  • GameLink: The URL to the game page.
  • ImageLink: The URL to the game image.

clsGames

Represents a collection of games retrieved from a site, along with metadata.

Properties:

  • isSuccess: Indicates whether the search was successful.
  • ErrorMessage: The error message if the search failed.
  • SearchLink: The URL used to perform the search.
  • SiteUrl: The base URL of the site.
  • Data: A collection of clsGameDataObject.

Note: The clsGameDataObject and clsGames classes are designed to be accessed only through the library. Direct instantiation is restricted to maintain data integrity.


Methods

FindGameAsync

Finds a game on the specified site.

Parameters
  • siteUri (enSiteUri): The site to search.
  • keyword (string): The game keyword to search for.
Returns

A Task<clsGames> object containing the search results.

Example Usage
try
{
    var result = await CrackDiggerEngine.FindGameAsync(CrackDiggerEngine.enSiteUri.steamripDotCom, "Game Name");
    if (result.isSuccess)
    {
        Console.WriteLine($"Site : {result.SiteUrl}");
        Console.WriteLine($"Search link : {result.SearchLink}");
        Console.WriteLine("Games Found :\n");
        foreach (var game in result.Data)
        {
            Console.WriteLine($"Title: {game.Title}, Link: {game.GameLink}, Image Link: {game.ImageLink}");
        }
    }
    else
    {
        Console.WriteLine($"Error: {result.ErrorMessage}");
    }
}
catch (Exception ex)
{
    Console.WriteLine($"Unexpected error: {ex.Message}");
}

FindGameFilteredSitesAsync

Searches for a game on multiple specified sites.

Parameters
  • sitesUri (List<enSiteUri>): The list of sites you want to search in.
  • keyword (string): The game you want to find.
Returns

A Task<Dictionary<enSiteUri, clsGames>> containing the search results for each site.

Example Usage
var result = await CrackDiggerEngine.FindGameFilteredSitesAsync(new List<CrackDiggerEngine.enSiteUri>
{
    CrackDiggerEngine.enSiteUri.steamripDotCom,
    CrackDiggerEngine.enSiteUri.fitgirl_repacksDoteSite
}, "Game Name");

foreach (var siteResult in result)
{
    Console.WriteLine($"Site: {siteResult.Key}, Search link: {siteResult.Value.SearchLink}");
    foreach (var game in siteResult.Value.Data)
    {
        Console.WriteLine($"Title: {game.Title}, Link: {game.GameLink}");
    }
}

FindGameAllSitesAsync

Searches for a game on all supported sites.

Parameters
  • keyword (string): The game you want to find.
Returns

A Task<Dictionary<enSiteUri, clsGames>> containing the search results for all sites.

Example Usage
var result = await CrackDiggerEngine.FindGameAllSitesAsync("Game Name");

foreach (var siteResult in result)
{
    Console.WriteLine($"Site: {siteResult.Key}, Search link: {siteResult.Value.SearchLink}");
    foreach (var game in siteResult.Value.Data)
    {
        Console.WriteLine($"Title: {game.Title}, Link: {game.GameLink}");
    }
}

MapAllGamesDataAsync

Converts a collection of clsGameDataObject to a list of dictionaries.

Parameters
  • data (IEnumerable<clsGameDataObject>): The game data to convert.
Returns

A Task<IEnumerable<Dictionary<string, string>>> representing the converted data.

Example Usage
var convertedData = await CrackDiggerEngine.ConvertAllGamesDataAsync(result.Data);
foreach (var item in convertedData)
{
    Console.WriteLine($"Title: {item["title"]}, Link: {item["link"]}, Image: {item["image"]}");
}

MapSingleGameDataAsync

Converts a single clsGameDataObject to a dictionary.

Parameters
  • data (clsGameDataObject): The game data to convert.
Returns

A Task<Dictionary<string, string>> representing the converted data.

Example Usage
var singleGameData = await CrackDiggerEngine.ConvertSingleGameDataAsync(game);
Console.WriteLine($"Title: {singleGameData["title"]}, Link: {singleGameData["link"]}, Image: {singleGameData["image"]}");

Notes

  • Ensure you handle exceptions when calling FindGameAsync, as network issues may cause errors.
  • The library uses HtmlAgilityPack for HTML parsing.
  • Always validate and sanitize inputs when using this library.

Conclusion

The CrackDiggerEngine library provides a powerful way to search and retrieve game information from multiple sources. With its easy-to-use methods and structured data classes, developers can quickly integrate game search functionalities into their applications.


© 2025-02-01 Mustafa (@m51v5). All rights reserved.

Get In Touch: https://m51v5.mssg.me/


Disclaimer

This library acts as a search engine and displays only publicly available information. We do not claim ownership of the data displayed. All rights belong to their respective owners from which the data was sourced. No data is stored or misused in violation of intellectual property or DRM policies.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.2.0 70 2/5/2025
1.0.0 78 2/2/2025

second version with 7 supported sites (added 2 more sites) and add two funcions (search filterd sites and across all sites at once)