A python Package API for gathering Users Information in some Platforms.
Project description
<a href="https://github.com/lesserapi/lesserapi">
<img src="https://raw.githubusercontent.com/lesserapi/lesserapi/logo/logo_rounded.png" alt="Logo" width="180">
</a>
lesserapi
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>
Ready To Use
Developed by Shervin Badanara (shervinbdndev) on Github
<img src="https://forthebadge.com/images/badges/made-with-python.svg"></img>
Language and technologies used in This Project
WorkSpace
Update Your Interpreter
Windows / CMD
py -m pip install --upgrade pip
Linux / Terminal
python -m pip install --upgrade pip
Installation
Windows / CMD , Linux / Terminal
pip install lesserapi
or
py -m pip install lesserapi
Update Library
Windows / CMD , Linux / Terminal / LesserApiUpdator
You can use Command Line to install and update LesserApi to the latest verion.
- Windows:
py -m pip install --upgrade lesserapi
- Linux:
python -m pip install --upgrade lesserapi
Also There's another way to update.
- You can Check if there is any new update available.
from lesserapi.utils.update import LesserApiUpdator
LesserApiUpdator.check_for_updates()
- Output:
Afterwards, If you decide to update! you can easily do it by running the code below.
from lesserapi.utils.update import LesserApiUpdator
LesserApiUpdator.update()
The update starts depends on your Operating System.
[!WARNING]
This Package Only can run in Python 3.11.3 or above.
Usage
Github
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()
New Addons & Changes on Version 1.1.3
-
Now you can Access User's Repositories Names.
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()
New Addons & Changes on Version 1.1.4
Now you can Access
-
User's Total Stars Given.
-
User's Profile Picture Url.
-
Check Repository Star Count.
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()
New Addons & Changes on Version 1.1.5
Now you can Access
-
User'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.
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()
New Addons & Changes on Version 1.1.9
Now you can Access
-
List 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 Methods
-
Get all Stars that the User has given to the Repositories.
-
List all of the Watchers of a Repository.
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()
New Addons & Changes on Version 1.1.15
Now you can Access
-
Check if User is Pro or Not.
-
User Organizations.
-
User Organizations Pictures.
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()
Steam
New Addons & Changes on Version 1.1.18
Now you can Access Steam.
Some Package Structure has changed.
Using RequestHandler & UserHandler for gathering steam Users data, has Removed.
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()
New Addons & Changes on Version 1.1.19
+5 New Functions
+2 New Components
Package Functionality Stablized
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()
Not Soon Cause of Filtering
Aparat
Soon
Enjoy :)
Package Uploaded in PYPI :Here
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
lesserapi-1.1.20.tar.gz
(2.5 MB
view details)
Built Distribution
File details
Details for the file lesserapi-1.1.20.tar.gz
.
File metadata
- Download URL: lesserapi-1.1.20.tar.gz
- Upload date:
- Size: 2.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f80af38b809c113696e728a5473ac0f04fad69723c5f61b8aedf07b463566046 |
|
MD5 | c068cb5ccde1b905c1de7bde189ae037 |
|
BLAKE2b-256 | e89555ecf79dd224449b552bf3edb06c4edda43e1c7b5b786df4980f3c1ac78e |
File details
Details for the file lesserapi-1.1.20-py3-none-any.whl
.
File metadata
- Download URL: lesserapi-1.1.20-py3-none-any.whl
- Upload date:
- Size: 2.5 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 657330dd00d3b0e76c827471210a55a20481e47aaa369880871b5e4efa595a18 |
|
MD5 | 726ca616a2dbe343ad5e327523f93801 |
|
BLAKE2b-256 | cb335e59ab6505fc964ad55ee12cc0e32011c934e566079b554f1865f466e56b |