Package: lesserapi
<a href="https://github.com/lesserapi/lesserapi">

    <img src="https://raw.githubusercontent.com/lesserapi/lesserapi/logo/logo_rounded.png" alt="Logo" width="180">

</a>lesserapiVersion 1.1.20Written with Python 3.11.3<div align="center">

    <img src="https://img.shields.io/github/license/lesserapi/lesserapi.svg"></img>

</div>

<img src="https://img.shields.io/github/forks/lesserapi/lesserapi.svg"></img>

<img src="https://img.shields.io/github/stars/lesserapi/lesserapi.svg"></img>

<img src="https://img.shields.io/github/watchers/lesserapi/lesserapi.svg"></img>

<img src="https://img.shields.io/github/issues-pr/lesserapi/lesserapi.svg"></img>

<img src="https://img.shields.io/github/issues-pr-closed/lesserapi/lesserapi.svg"></img>

<img src="https://img.shields.io/github/downloads/lesserapi/lesserapi/total.svg"></img><img style="display:block;margin-left:auto;margin-right:auto;width:70%;" src="https://github-readme-stats.vercel.app/api/pin/?username=lesserapi&repo=lesserapi&theme=dracula"></img>Ready To UseDeveloped by Shervin Badanara (shervinbdndev) on Github<img src="https://forthebadge.com/images/badges/made-with-python.svg"></img>Language and technologies used in This ProjectWorkSpaceUpdate Your InterpreterWindows / CMDpy-mpipinstall--upgradepipLinux / Terminalpython-mpipinstall--upgradepipInstallationWindows / CMD , Linux / Terminalpipinstalllesserapiorpy-mpipinstalllesserapiUpdate LibraryWindows / CMD , Linux / Terminal / LesserApiUpdatorYou can use Command Line to install and update LesserApi to the latest verion.Windows:py-mpipinstall--upgradelesserapiLinux:python-mpipinstall--upgradelesserapiAlso There's another way to update.You can Check if there is any new update available.fromlesserapi.utils.updateimportLesserApiUpdatorLesserApiUpdator.check_for_updates()Output:Afterwards, If you decide to update! you can easily do it by running the code below.fromlesserapi.utils.updateimportLesserApiUpdatorLesserApiUpdator.update()The update starts depends on your Operating System.[!WARNING]This Package Only can run in Python 3.11.3 or above.UsageGithubfromlesserapi.github.scraperimportGithubScrape# Scraper Classfromlesserapi.handlers.user_handlerimportUserHandler# User Handler Classfromlesserapi.handlers.request_handlerimportRequestHandler# Request Handler Classdefmain():# UserHandler serializes the value you given to the username param# RequestHandler gets the Serialized data then sends a GET request to github servers and saves the page content in request variablerequest:RequestHandler=RequestHandler(url=UserHandler(username='shervinbdndev').serialize(),).sendGetRequest(content=True)# Scrape gets the variable as an argscraper:GithubScrape=GithubScrape(data=request)# then we start using API by calling the startApi methodscraper.startApi(log=False)# log param is for safety, the default value is True but you can change it# After all of these steps now you're free to use the APIprint(scraper.followers)print(scraper.followings)print(scraper.biography)print(scraper.json_data)# get full json data of userif(__name__=="__main__"):main()New Addons & Changes on Version 1.1.3Now you can Access User's Repositories Names.fromlesserapi.github.scraperimportGithubScrapefromlesserapi.handlers.user_handlerimportUserHandlerfromlesserapi.handlers.request_handlerimportRequestHandlerdefmain():request:RequestHandler=RequestHandler(url=UserHandler(username='shervinbdndev').serialize(),).sendGetRequest(content=True)scraper:GithubScrape=GithubScrape(data=request)scraper.startApi(log=False)# Then your free to use the new method to get User's Repositories namesprint(scraper.repositoriesNames(username='shervinbdndev'))# ftl (first to last) is a new option that you can use to show the repositories from the first created to the last oneprint(scraper.repositoriesNames(username='shervinbdndev',ftl=True))# default value is False# Also you can select the repository by index like belowprint(scraper.repositoriesNames(username='shervinbdndev')[3])# for example I want the 4th repository (It starts from 0 btw)if(__name__=="__main__"):main()New Addons & Changes on Version 1.1.4Now you can AccessUser's Total Stars Given.User's Profile Picture Url.Check Repository Star Count.fromlesserapi.github.scraperimportGithubScrapefromlesserapi.handlers.user_handlerimportUserHandlerfromlesserapi.handlers.request_handlerimportRequestHandlerdefmain():request:RequestHandler=RequestHandler(url=UserHandler(username='shervinbdndev').serialize()).sendGetRequest(content=True)scraper:GithubScrape=GithubScrape(data=request)scraper.startApi(log=False)print(scraper.totalStarsGiven)# total stars givenprint(scraper.profilePictureUrl)# profile picture url# now using this new method you lets you check users repository's star countprint(scraper.checkRepositoryStars(username='shervinbdndev',# user's usernamerepo_name='Quizino',# repository's name))if(__name__=="__main__"):main()New Addons & Changes on Version 1.1.5Now you can AccessUser's Last Year Contributions.Check if User's Repository is Public Archive.Check if User has README.md.Get Repository's Used Languages.Get User's Unlocked Achievements.fromlesserapi.github.scraperimportGithubScrapefromlesserapi.handlers.user_handlerimportUserHandlerfromlesserapi.handlers.request_handlerimportRequestHandlerdefmain():user:UserHandler=UserHandler(username='shervinbdndev').serialize()# user instancerequest:RequestHandler=RequestHandler(url=user).sendGetRequest(content=True)# send request by RequestHandlerscraper:GithubScrape=GithubScrape(data=request)scraper.startApi(log=False)print(scraper.lastYearContributions)# last year contributionsprint(scraper.isRepositoryPublicArchive(username='shervinbdndev',repo_name='Quizino'))# check if repository is public archive => returns True or Falseprint(scraper.userHasReadMe(username='shervinbdndev'))# check if user has README.mdprint(scraper.repositoryUsedLanguages(username='shervinbdndev',repo_name='lesserapi'))# get repository's used languages (also you can select by index)print(scraper.userAchievements(username='shervinbdndev'))# get user's achievements (also you can select by index)if(__name__=="__main__"):main()New Addons & Changes on Version 1.1.9Now you can AccessList of User's Followings.List of User's Followers.Check Last Commit date of Repository with selected Branch.Check all Commit Dates of a Repository.Count the Repository Branches.Check if a Repository is froked from another Repository.Check if Repository has a LICENSE.Check the Repository's License Type.List Repository's Branches.+2 Beta MethodsGet all Stars that the User has given to the Repositories.List all of the Watchers of a Repository.fromlesserapi.github.scraperimportGithubScrapefromlesserapi.handlers.user_handlerimportUserHandlerfromlesserapi.handlers.request_handlerimportRequestHandlerdefmain():user:UserHandler=UserHandler(username='shervinbdndev').serialize()request:RequestHandler=RequestHandler(url=user).sendGetRequest(content=True)scraper:GithubScrape=GithubScrape(data=request)scraper.startApi(log=False)print(scraper.listFollowings(username='shervinbdndev'))# List of User's Followingsprint(scraper.listFollowers(username='shervinbdndev'))# List of User's Followings# This Method is in Beta version of itself# It doesn't show all User's Stars that given to Repositories# It only Lists The Repositories on the first pageprint(scraper.starsGivenRepositoriesNames(username='shervinbdndev'))# Last Commit date of Repository with selected Branchprint(scraper.repositoryLastCommitDateOnBranch(username='shervinbdndev',repo_name='lesserapi',branch_name='master'))# Commits dates of Repository with selected Branchprint(scraper.repositoryCommitsDatesOnBranch(username='shervinbdndev',repo_name='lesserapi',branch_name='master'))# Count of selected Repository Branchesprint(scraper.repositoryBranchesCount(username='shervinbdndev',repo_name='lesserapi'))# Check if current Repository is Forked from another Repositoryprint(scraper.currentRepositoryIsForkedFromAnotherRepository(username='shervinbdndev',repo_name='lesserapi'))# Check if Repository has a LICENSEprint(scraper.repositoryHasLicense(username='shervinbdndev',repo_name='lesserapi'))# Get License Type of a Repositoryprint(scraper.repositoryLicenseType(username='shervinbdndev',repo_name='lesserapi'))# List of Repository Watchers# This Method is in Beta version of itselfprint(scraper.listRepositoryWatchers(username='shervinbdndev',repo_name='lesserapi'))# List of Repository Branchesprint(scraper.listRepositoryBranches(username='shervinbdndev',repo_name='lesserapi'))if(__name__=="__main__"):main()New Addons & Changes on Version 1.1.15Now you can AccessCheck if User is Pro or Not.User Organizations.User Organizations Pictures.fromlesserapi.github.scraperimportGithubScrapefromlesserapi.handlers.user_handlerimportUserHandlerfromlesserapi.handlers.request_handlerimportRequestHandlerdefmain():user:UserHandler=UserHandler(username='shervinbdndev').serialize()request:RequestHandler=RequestHandler(url=user).sendGetRequest(content=True)scraper:GithubScrape=GithubScrape(data=request)scraper.startApi(log=False)print(scraper.isPro)print(scraper.userOrganizations(username='shervinbdndev'))print(scraper.userOrganizationsPictures(username='shervinbdndev'))if(__name__=="__main__"):main()SteamNew Addons & Changes on Version 1.1.18Now you can Access Steam.Some Package Structure has changed.Using RequestHandler & UserHandler for gathering steam Users data, has Removed.fromlesserapi.steam.scraperimportSteamScrapedefmain():scraper:SteamScrape=SteamScrape()scraper.startApi(log=True)# Here you can get the Data of User by 2 types of gathering info: 1-By Profile ID   2- By Profile Code# if user has no Profile ID, don't worry, you can use their Profile Code Instead.print(scraper.displayName(profile_id='shervinbdndev'))# if User has no Profile IDprint(scraper.displayName(profile_code='76561198358095760'))# Use their Profile Codeprint(scraper.location(profile_id='shervinbdndev'))print(scraper.biography(profile_id='shervinbdndev'))print(scraper.accountLevel(profile_id='shervinbdndev'))print(scraper.userStatus(profile_id='shervinbdndev'))print(scraper.recentActivity(profile_id='shervinbdndev'))print(scraper.badges(profile_id='shervinbdndev'))print(scraper.userAwardsMeta(profile_id='shervinbdndev',awards_given=True))# By using this function, you can access some of the User's Meta Data such as these below:print(scraper.userMeta(profile_id='shervinbdndev',totalAwards=True))print(scraper.userMeta(profile_id='shervinbdndev',totalFriends=True))print(scraper.userMeta(profile_id='shervinbdndev',totalBadges=True))print(scraper.userMeta(profile_id='shervinbdndev',totalGames=True))print(scraper.userMeta(profile_id='shervinbdndev',totalGroupsJoined=True))print(scraper.userMeta(profile_id='shervinbdndev',totalReviews=True))print(scraper.userMeta(profile_id='shervinbdndev',totalVideosUploaded=True))# use can use both methods on gathering the user data.print(scraper.userMeta(profile_code='76561198358095760',totalAwards=True))print(scraper.userMeta(profile_code='76561198358095760',totalFriends=True))...# here's an Example of put User's last 3 games played into variables by using the function below:# Also do not forget that you can initialize the paramsgames_names:list[str]=scraper.last3GamesPlayedMeta(profile_id='shervinbdndev',names=True)games_info:list[str]=scraper.last3GamesPlayedMeta(profile_id='shervinbdndev',info=True)# here you can create a dictionary with values of games and keys of User's game infotoDictType:dict[str,str]=dict(zip(games_names,games_info))print(toDictType)# Output# {#     'Counter-Strike 2': '1,397 hrs on recordlast played on 27 Nov',#     'ELDEN RING': '254 hrs on recordlast played on 27 Nov',#     'Far Cry 4': '33 hrs on recordlast played on 27 Nov'# }if(__name__=="__main__"):main()New Addons & Changes on Version 1.1.19+5 New Functions+2 New ComponentsPackage Functionality Stablizedfromlesserapi.steam.backupimportGAME_CODES# + New Builtin Backup from Steam Game Codes: ! Do not open this Componentfromlesserapi.steam.scraperimportSteamScrapefromlesserapi.utilsimportfindGamesWithSameNameSTEAM_USERNAME:str='shervinbdndev'defmain()->None:scraper:SteamScrape=SteamScrape()scraper.startApi(log=True)# Here are 3 Functions that doesn't need to explain what they each do.print(scraper.accountTotalXP(profile_id=STEAM_USERNAME))print(scraper.accountNextLevel(profile_id=STEAM_USERNAME))print(scraper.accountXPNeededForNextLevel(profile_id=STEAM_USERNAME))# Here we have an new function that you can use for finding the exact name of the game.# for example if you run the code below:print(findGamesWithSameName(name='Counter-Strike'))# It should give you sth# ['Counter-Strike: Source Dedicated Server', 'Counter-Strike: GO - Intro Trailer', 'Counter-Strike Online', 'Counter-Strike Global Offensive - Dedicated Server', 'Counter-Strike: Global Offensive - SDK', 'Counter-Strike', 'Counter-Strike: Condition Zero Deleted Scenes', 'Counter-Strike Steamworks Beta', 'Counter-Strike: Source Beta', 'Counter-Strike: Condition Zero', 'Counter-Strike Nexon: Studio', 'Counter-Strike Nexon: Zombies - Rivals DLC', 'Counter-Strike Nexon: Zombies - Teddy Nightmare (30 Days)', 'Counter-Strike Nexon: Zombies - Teddy Nightmare (15 Days)', "Counter-Strike Nexon: Zombies - Oz's Trio", 'Counter-Strike Nexon: Zombies - Starter Pack', 'Counter-Strike Nexon: Zombies - Journey to the West + Permanent Character', 'Counter-Strike Nexon: Zombies - Dragon Set + Permanent Character', 'Counter-Strike Chat', 'Counter-Strike Flair', 'Counter-Strike: Global Offensive', 'Counter-Strike: Source']# After you find the exact name of the game you want, you can use GAME_CODES.# GAME_CODES is a constant builtin lesserapi dictionary that you can pass the game exact name as the key to it, afterwards you're all done.print(scraper.gameDetails(game_code=GAME_CODES['Counter-Strike'],raw_json=True))if(__name__=="__main__"):main()InstagramNot Soon Cause of FilteringAparatSoonEnjoy :)Package Uploaded in PYPI :Here