Skip to main content

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()
Instagram

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 hashes)

Uploaded Source

Built Distribution

lesserapi-1.1.20-py3-none-any.whl (2.5 MB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page