![Create React App Officially Deprecated Amid React 19 Compatibility Issues](https://cdn.sanity.io/images/cgdhsj6q/production/04fa08cf844d798abc0e1a6391c129363cc7e2ab-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Create React App Officially Deprecated Amid React 19 Compatibility Issues
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
<a href="https://github.com/lesserapi/lesserapi">
<img src="https://raw.githubusercontent.com/lesserapi/lesserapi/logo/logo_rounded.png" alt="Logo" width="180">
</a>
Version 1.1.20
Written 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>
<img src="https://forthebadge.com/images/badges/made-with-python.svg"></img>
py -m pip install --upgrade pip
python -m pip install --upgrade pip
pip install lesserapi
py -m pip install lesserapi
py -m pip install --upgrade lesserapi
python -m pip install --upgrade lesserapi
from lesserapi.utils.update import LesserApiUpdator
LesserApiUpdator.check_for_updates()
from lesserapi.utils.update import LesserApiUpdator
LesserApiUpdator.update()
[!WARNING]
This Package Only can run in Python 3.11.3 or above.
from lesserapi.github.scraper import GithubScrape # Scraper Class
from lesserapi.handlers.user_handler import UserHandler # User Handler Class
from lesserapi.handlers.request_handler import RequestHandler # Request Handler Class
def main():
# 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 variable
request: RequestHandler = RequestHandler(
url=UserHandler(username='shervinbdndev').serialize(),
).sendGetRequest(content=True)
# Scrape gets the variable as an arg
scraper: GithubScrape = GithubScrape(data=request)
# then we start using API by calling the startApi method
scraper.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 API
print(scraper.followers)
print(scraper.followings)
print(scraper.biography)
print(scraper.json_data) # get full json data of user
if (__name__ == "__main__"):
main()
from lesserapi.github.scraper import GithubScrape
from lesserapi.handlers.user_handler import UserHandler
from lesserapi.handlers.request_handler import RequestHandler
def main():
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 names
print(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 one
print(scraper.repositoriesNames(username='shervinbdndev', ftl=True)) # default value is False
# Also you can select the repository by index like below
print(scraper.repositoriesNames(username='shervinbdndev')[3]) # for example I want the 4th repository (It starts from 0 btw)
if (__name__ == "__main__"):
main()
from lesserapi.github.scraper import GithubScrape
from lesserapi.handlers.user_handler import UserHandler
from lesserapi.handlers.request_handler import RequestHandler
def main():
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 given
print(scraper.profilePictureUrl) # profile picture url
# now using this new method you lets you check users repository's star count
print(scraper.checkRepositoryStars(
username='shervinbdndev', # user's username
repo_name='Quizino', # repository's name
))
if (__name__ == "__main__"):
main()
from lesserapi.github.scraper import GithubScrape
from lesserapi.handlers.user_handler import UserHandler
from lesserapi.handlers.request_handler import RequestHandler
def main():
user: UserHandler = UserHandler(username='shervinbdndev').serialize() # user instance
request: RequestHandler = RequestHandler(url=user).sendGetRequest(content=True) # send request by RequestHandler
scraper: GithubScrape = GithubScrape(data=request)
scraper.startApi(log=False)
print(scraper.lastYearContributions) # last year contributions
print(scraper.isRepositoryPublicArchive(username='shervinbdndev', repo_name='Quizino')) # check if repository is public archive => returns True or False
print(scraper.userHasReadMe(username='shervinbdndev')) # check if user has README.md
print(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()
from lesserapi.github.scraper import GithubScrape
from lesserapi.handlers.user_handler import UserHandler
from lesserapi.handlers.request_handler import RequestHandler
def main():
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 Followings
print(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 page
print(scraper.starsGivenRepositoriesNames(username='shervinbdndev'))
# Last Commit date of Repository with selected Branch
print(scraper.repositoryLastCommitDateOnBranch(username='shervinbdndev', repo_name='lesserapi', branch_name='master'))
# Commits dates of Repository with selected Branch
print(scraper.repositoryCommitsDatesOnBranch(username='shervinbdndev', repo_name='lesserapi', branch_name='master'))
# Count of selected Repository Branches
print(scraper.repositoryBranchesCount(username='shervinbdndev', repo_name='lesserapi'))
# Check if current Repository is Forked from another Repository
print(scraper.currentRepositoryIsForkedFromAnotherRepository(username='shervinbdndev', repo_name='lesserapi'))
# Check if Repository has a LICENSE
print(scraper.repositoryHasLicense(username='shervinbdndev', repo_name='lesserapi'))
# Get License Type of a Repository
print(scraper.repositoryLicenseType(username='shervinbdndev', repo_name='lesserapi'))
# List of Repository Watchers
# This Method is in Beta version of itself
print(scraper.listRepositoryWatchers(username='shervinbdndev', repo_name='lesserapi'))
# List of Repository Branches
print(scraper.listRepositoryBranches(username='shervinbdndev', repo_name='lesserapi'))
if (__name__ == "__main__"):
main()
from lesserapi.github.scraper import GithubScrape
from lesserapi.handlers.user_handler import UserHandler
from lesserapi.handlers.request_handler import RequestHandler
def main():
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()
from lesserapi.steam.scraper import SteamScrape
def main():
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 ID
print(scraper.displayName(profile_code='76561198358095760')) # Use their Profile Code
print(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 params
games_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 info
toDictType: 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()
from lesserapi.steam.backup import GAME_CODES # + New Builtin Backup from Steam Game Codes: ! Do not open this Component
from lesserapi.steam.scraper import SteamScrape
from lesserapi.utils import findGamesWithSameName
STEAM_USERNAME: str = 'shervinbdndev'
def main() -> 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()
FAQs
A python Package API for gathering Users Information in some Platforms.
We found that lesserapi demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.