lesserapi


Namelesserapi JSON
Version 1.1.19 PyPI version JSON
download
home_page
SummaryA python Package API for gathering Users Information in some Platforms.
upload_time2023-12-05 13:26:57
maintainerShervin Badanara
docs_urlNone
authorShervin Badanara (shervinbdndev)
requires_python
licenseMIT
keywords python api github github_api github_package
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
<div align='center'>

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

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

    </a>

</div>

<h1 align='center' style="font-size:5rem"><b>lesserapi</b></h1>

<p align='center'><b>Version 1.1.19</b></p>

<p align='center'><b>Written with Python 3.11.3</b></p>

<div align="center">

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

</div>

<br>

<div align="center">

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

</div>

<br>

<h3 align='center'>Ready To Use</h3>

<h3 align='center'>Developed by Shervin Badanara (shervinbdndev) on Github</h3>

<div align="center">

    <img src="https://forthebadge.com/images/badges/made-with-python.svg"></img>

</div>

<br>

<hr>

<br>

<h2 align='center'><b>Language and technologies used in This Project</h2>

<img src="https://img.shields.io/badge/Python-14354C?style=for-the-badge&logo=python&logoColor=white"></img>

<img src="https://img.shields.io/badge/Google_chrome-4285F4?style=for-the-badge&logo=Google-chrome&logoColor=white"></img>

<img src="https://img.shields.io/badge/Visual_Studio_Code-0078D4?style=for-the-badge&logo=visual%20studio%20code&logoColor=white"></img>

<img src="https://img.shields.io/badge/Linux-FCC624?style=for-the-badge&logo=linux&logoColor=black"></img>

<img src="https://img.shields.io/badge/Ubuntu-E95420?style=for-the-badge&logo=ubuntu&logoColor=white"></img>

<img src="https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white"></img>

<img src="https://img.shields.io/badge/Stack_Overflow-FE7A16?style=for-the-badge&logo=stack-overflow&logoColor=white"></img>

<img src="https://img.shields.io/badge/Reddit-FF4500?style=for-the-badge&logo=reddit&logoColor=white"></img>



<br>

<h2 align='center'><b>WorkSpace</h2>

<img src="https://img.shields.io/badge/Intel-Core_i5_10600K-0071C5?style=for-the-badge&logo=intel&logoColor=white"></img>

<img src="https://img.shields.io/badge/NVIDIA-RTX2060 OC-76B900?style=for-the-badge&logo=nvidia&logoColor=white"></img>

<img src="https://img.shields.io/badge/Windows11-0078D6?style=for-the-badge&logo=windows&logoColor=white"></img>





<hr>





<br><br><br>

<h1 align='left'><b>Update Your Interpreter</b></h1>



# Windows / CMD



```python

py -m pip install --upgrade pip

```



# Linux / Terminal



```python

python -m pip install --upgrade pip

```

<br>



<hr>

<br><br><br>

<h1 align='left'><b>Installation</b></h1>

 

# Windows / CMD , Linux / Terminal

```python

pip install lesserapi

```

<h2 align='left'>or</h2>



```python

py -m pip install lesserapi

```



<br><br><br>

<h1 align='left'><b>Update Library</b></h1>

 

# Windows / CMD , Linux / Terminal

```python

pip install -U lesserapi

```



<h2 align='left'>or</h2>



```python

py -m pip install --upgrade lesserapi

```



<br><br><br>



> [!WARNING]

> This Package Only can run in Python 3.11.3 or above.



<hr>

<br>

<h1 align='left'><b>Usage</b></h1>



<br>



<details>



<summary style="font-size:2rem">Github</summary>



```python

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







```



<br><br><br>



# New Addons & Changes on Version 1.1.3



- ### Now you can Access User's Repositories Names.



```py



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







```



<br><br><br>



# 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.



```python



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



```



<br><br><br>



# 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.





```python





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





```



<br><br><br>



# 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.

<br><br>



## +2 Beta Methods



- ### Get all Stars that the User has given to the Repositories.

- ### List all of the Watchers of a Repository.





```python





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





```



<br><br><br>



# New Addons & Changes on Version 1.1.15



## Now you can Access



- ### Check if User is Pro or Not.

- ### User Organizations.

- ### User Organizations Pictures.



```python



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



```







</details>



<details>



<summary style="font-size:2rem">Steam</summary>



# 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.



```python



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



```



<br><br><br>



# New Addons & Changes on Version 1.1.19



## +5 New Functions

## +2 New Components

## Package Functionality Stablized





```python



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



```



</details>



<details>



<summary style="font-size:2rem">Instagram</summary>



### Not Soon Cause of Filtering



</details>





<details>



<summary style="font-size:2rem">Aparat</summary>



### Soon





</details>



<br>

<br>

<br>







<h1 align='left'>Enjoy :)</h1>



<br>

<h3><b>Package Uploaded in PYPI :<a href="https://pypi.org/project/lesserapi/">Here</a></b></h3>

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "lesserapi",
    "maintainer": "Shervin Badanara",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "python,api,github,github_api,github_package",
    "author": "Shervin Badanara (shervinbdndev)",
    "author_email": "shervin2234@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/96/01/2e3f2311acf308a60266fed5420f5a467e5adf98160ada365760026a6182/lesserapi-1.1.19.tar.gz",
    "platform": null,
    "description": "\r\n<div align='center'>\r\n\r\n    <a href=\"https://github.com/lesserapi/lesserapi\">\r\n\r\n        <img src=\"https://raw.githubusercontent.com/lesserapi/lesserapi/logo/logo_rounded.png\" alt=\"Logo\" width=\"180\">\r\n\r\n    </a>\r\n\r\n</div>\r\n\r\n<h1 align='center' style=\"font-size:5rem\"><b>lesserapi</b></h1>\r\n\r\n<p align='center'><b>Version 1.1.19</b></p>\r\n\r\n<p align='center'><b>Written with Python 3.11.3</b></p>\r\n\r\n<div align=\"center\">\r\n\r\n    <div align=\"center\">\r\n\r\n        <img src=\"https://img.shields.io/github/license/lesserapi/lesserapi.svg\"></img>\r\n\r\n    </div>\r\n\r\n    <img src=\"https://img.shields.io/github/forks/lesserapi/lesserapi.svg\"></img>\r\n\r\n    <img src=\"https://img.shields.io/github/stars/lesserapi/lesserapi.svg\"></img>\r\n\r\n    <img src=\"https://img.shields.io/github/watchers/lesserapi/lesserapi.svg\"></img>\r\n\r\n    <img src=\"https://img.shields.io/github/issues-pr/lesserapi/lesserapi.svg\"></img>\r\n\r\n    <img src=\"https://img.shields.io/github/issues-pr-closed/lesserapi/lesserapi.svg\"></img>\r\n\r\n    <img src=\"https://img.shields.io/github/downloads/lesserapi/lesserapi/total.svg\"></img>\r\n\r\n</div>\r\n\r\n<br>\r\n\r\n<div align=\"center\">\r\n\r\n    <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>\r\n\r\n</div>\r\n\r\n<br>\r\n\r\n<h3 align='center'>Ready To Use</h3>\r\n\r\n<h3 align='center'>Developed by Shervin Badanara (shervinbdndev) on Github</h3>\r\n\r\n<div align=\"center\">\r\n\r\n    <img src=\"https://forthebadge.com/images/badges/made-with-python.svg\"></img>\r\n\r\n</div>\r\n\r\n<br>\r\n\r\n<hr>\r\n\r\n<br>\r\n\r\n<h2 align='center'><b>Language and technologies used in This Project</h2>\r\n\r\n<img src=\"https://img.shields.io/badge/Python-14354C?style=for-the-badge&logo=python&logoColor=white\"></img>\r\n\r\n<img src=\"https://img.shields.io/badge/Google_chrome-4285F4?style=for-the-badge&logo=Google-chrome&logoColor=white\"></img>\r\n\r\n<img src=\"https://img.shields.io/badge/Visual_Studio_Code-0078D4?style=for-the-badge&logo=visual%20studio%20code&logoColor=white\"></img>\r\n\r\n<img src=\"https://img.shields.io/badge/Linux-FCC624?style=for-the-badge&logo=linux&logoColor=black\"></img>\r\n\r\n<img src=\"https://img.shields.io/badge/Ubuntu-E95420?style=for-the-badge&logo=ubuntu&logoColor=white\"></img>\r\n\r\n<img src=\"https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white\"></img>\r\n\r\n<img src=\"https://img.shields.io/badge/Stack_Overflow-FE7A16?style=for-the-badge&logo=stack-overflow&logoColor=white\"></img>\r\n\r\n<img src=\"https://img.shields.io/badge/Reddit-FF4500?style=for-the-badge&logo=reddit&logoColor=white\"></img>\r\n\r\n\r\n\r\n<br>\r\n\r\n<h2 align='center'><b>WorkSpace</h2>\r\n\r\n<img src=\"https://img.shields.io/badge/Intel-Core_i5_10600K-0071C5?style=for-the-badge&logo=intel&logoColor=white\"></img>\r\n\r\n<img src=\"https://img.shields.io/badge/NVIDIA-RTX2060 OC-76B900?style=for-the-badge&logo=nvidia&logoColor=white\"></img>\r\n\r\n<img src=\"https://img.shields.io/badge/Windows11-0078D6?style=for-the-badge&logo=windows&logoColor=white\"></img>\r\n\r\n\r\n\r\n\r\n\r\n<hr>\r\n\r\n\r\n\r\n\r\n\r\n<br><br><br>\r\n\r\n<h1 align='left'><b>Update Your Interpreter</b></h1>\r\n\r\n\r\n\r\n# Windows / CMD\r\n\r\n\r\n\r\n```python\r\n\r\npy -m pip install --upgrade pip\r\n\r\n```\r\n\r\n\r\n\r\n# Linux / Terminal\r\n\r\n\r\n\r\n```python\r\n\r\npython -m pip install --upgrade pip\r\n\r\n```\r\n\r\n<br>\r\n\r\n\r\n\r\n<hr>\r\n\r\n<br><br><br>\r\n\r\n<h1 align='left'><b>Installation</b></h1>\r\n\r\n \r\n\r\n# Windows / CMD , Linux / Terminal\r\n\r\n```python\r\n\r\npip install lesserapi\r\n\r\n```\r\n\r\n<h2 align='left'>or</h2>\r\n\r\n\r\n\r\n```python\r\n\r\npy -m pip install lesserapi\r\n\r\n```\r\n\r\n\r\n\r\n<br><br><br>\r\n\r\n<h1 align='left'><b>Update Library</b></h1>\r\n\r\n \r\n\r\n# Windows / CMD , Linux / Terminal\r\n\r\n```python\r\n\r\npip install -U lesserapi\r\n\r\n```\r\n\r\n\r\n\r\n<h2 align='left'>or</h2>\r\n\r\n\r\n\r\n```python\r\n\r\npy -m pip install --upgrade lesserapi\r\n\r\n```\r\n\r\n\r\n\r\n<br><br><br>\r\n\r\n\r\n\r\n> [!WARNING]\r\n\r\n> This Package Only can run in Python 3.11.3 or above.\r\n\r\n\r\n\r\n<hr>\r\n\r\n<br>\r\n\r\n<h1 align='left'><b>Usage</b></h1>\r\n\r\n\r\n\r\n<br>\r\n\r\n\r\n\r\n<details>\r\n\r\n\r\n\r\n<summary style=\"font-size:2rem\">Github</summary>\r\n\r\n\r\n\r\n```python\r\n\r\nfrom lesserapi.github.scraper import GithubScrape # Scraper Class\r\n\r\nfrom lesserapi.handlers.user_handler import UserHandler # User Handler Class\r\n\r\nfrom lesserapi.handlers.request_handler import RequestHandler # Request Handler Class\r\n\r\n\r\n\r\n\r\n\r\ndef main():\r\n\r\n\r\n\r\n    # UserHandler serializes the value you given to the username param\r\n\r\n    # RequestHandler gets the Serialized data then sends a GET request to github servers and saves the page content in request variable\r\n\r\n\r\n\r\n    request: RequestHandler = RequestHandler(\r\n\r\n        url=UserHandler(username='shervinbdndev').serialize(),\r\n\r\n    ).sendGetRequest(content=True)\r\n\r\n    \r\n\r\n\r\n\r\n    # Scrape gets the variable as an arg\r\n\r\n\r\n\r\n    scraper: GithubScrape = GithubScrape(data=request)\r\n\r\n\r\n\r\n    # then we start using API by calling the startApi method\r\n\r\n    \r\n\r\n    scraper.startApi(log=False) # log param is for safety, the default value is True but you can change it\r\n\r\n    \r\n\r\n\r\n\r\n    # After all of these steps now you're free to use the API\r\n\r\n\r\n\r\n    print(scraper.followers)\r\n\r\n    print(scraper.followings)\r\n\r\n    print(scraper.biography)\r\n\r\n    \r\n\r\n    print(scraper.json_data) # get full json data of user\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nif (__name__ == \"__main__\"):\r\n\r\n    main()\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n```\r\n\r\n\r\n\r\n<br><br><br>\r\n\r\n\r\n\r\n# New Addons & Changes on Version 1.1.3\r\n\r\n\r\n\r\n- ### Now you can Access User's Repositories Names.\r\n\r\n\r\n\r\n```py\r\n\r\n\r\n\r\nfrom lesserapi.github.scraper import GithubScrape\r\n\r\nfrom lesserapi.handlers.user_handler import UserHandler\r\n\r\nfrom lesserapi.handlers.request_handler import RequestHandler\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\ndef main():\r\n\r\n    request: RequestHandler = RequestHandler(\r\n\r\n        url=UserHandler(username='shervinbdndev').serialize(),\r\n\r\n    ).sendGetRequest(content=True)\r\n\r\n    \r\n\r\n    scraper: GithubScrape = GithubScrape(data=request)\r\n\r\n    \r\n\r\n    scraper.startApi(log=False)\r\n\r\n\r\n\r\n    # Then your free to use the new method to get User's Repositories names\r\n\r\n    \r\n\r\n    print(scraper.repositoriesNames(username='shervinbdndev'))\r\n\r\n\r\n\r\n    # ftl (first to last) is a new option that you can use to show the repositories from the first created to the last one\r\n\r\n\r\n\r\n    print(scraper.repositoriesNames(username='shervinbdndev', ftl=True)) # default value is False\r\n\r\n\r\n\r\n    # Also you can select the repository by index like below\r\n\r\n\r\n\r\n    print(scraper.repositoriesNames(username='shervinbdndev')[3]) # for example I want the 4th repository (It starts from 0 btw)\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nif (__name__ == \"__main__\"):\r\n\r\n    main()\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n```\r\n\r\n\r\n\r\n<br><br><br>\r\n\r\n\r\n\r\n# New Addons & Changes on Version 1.1.4\r\n\r\n\r\n\r\n## Now you can Access\r\n\r\n\r\n\r\n- ### User's Total Stars Given.\r\n\r\n- ### User's Profile Picture Url.\r\n\r\n- ### Check Repository Star Count.\r\n\r\n\r\n\r\n```python\r\n\r\n\r\n\r\nfrom lesserapi.github.scraper import GithubScrape\r\n\r\nfrom lesserapi.handlers.user_handler import UserHandler\r\n\r\nfrom lesserapi.handlers.request_handler import RequestHandler\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\ndef main():\r\n\r\n    request: RequestHandler = RequestHandler(\r\n\r\n        url=UserHandler(username='shervinbdndev').serialize()\r\n\r\n    ).sendGetRequest(content=True)\r\n\r\n    \r\n\r\n    scraper: GithubScrape = GithubScrape(data=request)\r\n\r\n    \r\n\r\n    scraper.startApi(log=False)\r\n\r\n    \r\n\r\n    print(scraper.totalStarsGiven) # total stars given\r\n\r\n    \r\n\r\n    print(scraper.profilePictureUrl) # profile picture url\r\n\r\n\r\n\r\n    # now using this new method you lets you check users repository's star count\r\n\r\n\r\n\r\n    print(scraper.checkRepositoryStars(\r\n\r\n        username='shervinbdndev', # user's username\r\n\r\n        repo_name='Quizino', # repository's name\r\n\r\n    ))\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nif (__name__ == \"__main__\"):\r\n\r\n    main()\r\n\r\n\r\n\r\n```\r\n\r\n\r\n\r\n<br><br><br>\r\n\r\n\r\n\r\n# New Addons & Changes on Version 1.1.5\r\n\r\n\r\n\r\n## Now you can Access\r\n\r\n\r\n\r\n- ### User's Last Year Contributions.\r\n\r\n- ### Check if User's Repository is Public Archive.\r\n\r\n- ### Check if User has README.md.\r\n\r\n- ### Get Repository's Used Languages.\r\n\r\n- ### Get User's Unlocked Achievements.\r\n\r\n\r\n\r\n\r\n\r\n```python\r\n\r\n\r\n\r\n\r\n\r\nfrom lesserapi.github.scraper import GithubScrape\r\n\r\nfrom lesserapi.handlers.user_handler import UserHandler\r\n\r\nfrom lesserapi.handlers.request_handler import RequestHandler\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\ndef main():\r\n\r\n    user: UserHandler = UserHandler(username='shervinbdndev').serialize() # user instance\r\n\r\n    \r\n\r\n    request: RequestHandler = RequestHandler(url=user).sendGetRequest(content=True) # send request by RequestHandler\r\n\r\n    \r\n\r\n    scraper: GithubScrape = GithubScrape(data=request)\r\n\r\n    \r\n\r\n    scraper.startApi(log=False)\r\n\r\n    \r\n\r\n    print(scraper.lastYearContributions) # last year contributions\r\n\r\n    \r\n\r\n    print(scraper.isRepositoryPublicArchive(username='shervinbdndev', repo_name='Quizino')) # check if repository is public archive => returns True or False\r\n\r\n    \r\n\r\n    print(scraper.userHasReadMe(username='shervinbdndev')) # check if user has README.md\r\n\r\n\r\n\r\n    print(scraper.repositoryUsedLanguages(username='shervinbdndev', repo_name='lesserapi')) # get repository's used languages (also you can select by index)\r\n\r\n\r\n\r\n    print(scraper.userAchievements(username='shervinbdndev')) # get user's achievements (also you can select by index)\r\n\r\n    \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nif (__name__ == \"__main__\"):\r\n\r\n    main()\r\n\r\n\r\n\r\n\r\n\r\n```\r\n\r\n\r\n\r\n<br><br><br>\r\n\r\n\r\n\r\n# New Addons & Changes on Version 1.1.9\r\n\r\n\r\n\r\n## Now you can Access\r\n\r\n\r\n\r\n- ### List of User's Followings.\r\n\r\n- ### List of User's Followers.\r\n\r\n- ### Check Last Commit date of Repository with selected Branch.\r\n\r\n- ### Check all Commit Dates of a Repository.\r\n\r\n- ### Count the Repository Branches.\r\n\r\n- ### Check if a Repository is froked from another Repository.\r\n\r\n- ### Check if Repository has a LICENSE.\r\n\r\n- ### Check the Repository's License Type.\r\n\r\n- ### List Repository's Branches.\r\n\r\n<br><br>\r\n\r\n\r\n\r\n## +2 Beta Methods\r\n\r\n\r\n\r\n- ### Get all Stars that the User has given to the Repositories.\r\n\r\n- ### List all of the Watchers of a Repository.\r\n\r\n\r\n\r\n\r\n\r\n```python\r\n\r\n\r\n\r\n\r\n\r\nfrom lesserapi.github.scraper import GithubScrape\r\n\r\nfrom lesserapi.handlers.user_handler import UserHandler\r\n\r\nfrom lesserapi.handlers.request_handler import RequestHandler\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\ndef main():\r\n\r\n    user: UserHandler = UserHandler(username='shervinbdndev').serialize()\r\n\r\n    \r\n\r\n    request: RequestHandler = RequestHandler(url=user).sendGetRequest(content=True)\r\n\r\n    \r\n\r\n    scraper: GithubScrape = GithubScrape(data=request)\r\n\r\n    \r\n\r\n    scraper.startApi(log=False)\r\n\r\n    \r\n\r\n    print(scraper.listFollowings(username='shervinbdndev')) # List of User's Followings\r\n\r\n    print(scraper.listFollowers(username='shervinbdndev')) # List of User's Followings\r\n\r\n\r\n\r\n    # This Method is in Beta version of itself\r\n\r\n    # It doesn't show all User's Stars that given to Repositories\r\n\r\n    # It only Lists The Repositories on the first page\r\n\r\n    print(scraper.starsGivenRepositoriesNames(username='shervinbdndev'))\r\n\r\n\r\n\r\n    # Last Commit date of Repository with selected Branch\r\n\r\n    print(scraper.repositoryLastCommitDateOnBranch(username='shervinbdndev', repo_name='lesserapi', branch_name='master'))\r\n\r\n\r\n\r\n    # Commits dates of Repository with selected Branch\r\n\r\n    print(scraper.repositoryCommitsDatesOnBranch(username='shervinbdndev', repo_name='lesserapi', branch_name='master'))\r\n\r\n\r\n\r\n    # Count of selected Repository Branches\r\n\r\n    print(scraper.repositoryBranchesCount(username='shervinbdndev', repo_name='lesserapi'))\r\n\r\n\r\n\r\n    # Check if current Repository is Forked from another Repository\r\n\r\n    print(scraper.currentRepositoryIsForkedFromAnotherRepository(username='shervinbdndev', repo_name='lesserapi'))\r\n\r\n\r\n\r\n    # Check if Repository has a LICENSE\r\n\r\n    print(scraper.repositoryHasLicense(username='shervinbdndev', repo_name='lesserapi'))\r\n\r\n\r\n\r\n    # Get License Type of a Repository\r\n\r\n    print(scraper.repositoryLicenseType(username='shervinbdndev', repo_name='lesserapi'))\r\n\r\n\r\n\r\n    # List of Repository Watchers\r\n\r\n    # This Method is in Beta version of itself\r\n\r\n    print(scraper.listRepositoryWatchers(username='shervinbdndev', repo_name='lesserapi'))\r\n\r\n\r\n\r\n    # List of Repository Branches\r\n\r\n    print(scraper.listRepositoryBranches(username='shervinbdndev', repo_name='lesserapi'))\r\n\r\n    \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nif (__name__ == \"__main__\"):\r\n\r\n    main()\r\n\r\n\r\n\r\n\r\n\r\n```\r\n\r\n\r\n\r\n<br><br><br>\r\n\r\n\r\n\r\n# New Addons & Changes on Version 1.1.15\r\n\r\n\r\n\r\n## Now you can Access\r\n\r\n\r\n\r\n- ### Check if User is Pro or Not.\r\n\r\n- ### User Organizations.\r\n\r\n- ### User Organizations Pictures.\r\n\r\n\r\n\r\n```python\r\n\r\n\r\n\r\nfrom lesserapi.github.scraper import GithubScrape\r\n\r\nfrom lesserapi.handlers.user_handler import UserHandler\r\n\r\nfrom lesserapi.handlers.request_handler import RequestHandler\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\ndef main():\r\n\r\n    user: UserHandler = UserHandler(username='shervinbdndev').serialize()\r\n\r\n    \r\n\r\n    request: RequestHandler = RequestHandler(url=user).sendGetRequest(content=True)\r\n\r\n    \r\n\r\n    scraper: GithubScrape = GithubScrape(data=request)\r\n\r\n    \r\n\r\n    scraper.startApi(log=False)\r\n\r\n    \r\n\r\n    print(scraper.isPro)\r\n\r\n    print(scraper.userOrganizations(username='shervinbdndev'))\r\n\r\n    print(scraper.userOrganizationsPictures(username='shervinbdndev'))\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nif (__name__ == \"__main__\"):\r\n\r\n    main()\r\n\r\n\r\n\r\n```\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n</details>\r\n\r\n\r\n\r\n<details>\r\n\r\n\r\n\r\n<summary style=\"font-size:2rem\">Steam</summary>\r\n\r\n\r\n\r\n# New Addons & Changes on Version 1.1.18\r\n\r\n\r\n\r\n## Now you can Access Steam.\r\n\r\n## Some Package Structure has changed.\r\n\r\n## Using RequestHandler & UserHandler for gathering steam Users data, has Removed.\r\n\r\n\r\n\r\n```python\r\n\r\n\r\n\r\nfrom lesserapi.steam.scraper import SteamScrape\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\ndef main():\r\n\r\n    scraper: SteamScrape = SteamScrape()\r\n\r\n    \r\n\r\n    scraper.startApi(log=True)\r\n\r\n    \r\n\r\n    # Here you can get the Data of User by 2 types of gathering info: 1-By Profile ID   2- By Profile Code\r\n\r\n    # if user has no Profile ID, don't worry, you can use their Profile Code Instead.\r\n\r\n    print(scraper.displayName(profile_id='shervinbdndev')) # if User has no Profile ID\r\n\r\n    print(scraper.displayName(profile_code='76561198358095760')) # Use their Profile Code\r\n\r\n    \r\n\r\n    print(scraper.location(profile_id='shervinbdndev'))\r\n\r\n    print(scraper.biography(profile_id='shervinbdndev'))\r\n\r\n    print(scraper.accountLevel(profile_id='shervinbdndev'))\r\n\r\n    print(scraper.userStatus(profile_id='shervinbdndev'))\r\n\r\n    print(scraper.recentActivity(profile_id='shervinbdndev'))\r\n\r\n    print(scraper.badges(profile_id='shervinbdndev'))\r\n\r\n    print(scraper.userAwardsMeta(profile_id='shervinbdndev', awards_given=True))\r\n\r\n    \r\n\r\n    # By using this function, you can access some of the User's Meta Data such as these below:\r\n\r\n    print(scraper.userMeta(profile_id='shervinbdndev', totalAwards=True))\r\n\r\n    print(scraper.userMeta(profile_id='shervinbdndev', totalFriends=True))\r\n\r\n    print(scraper.userMeta(profile_id='shervinbdndev', totalBadges=True))\r\n\r\n    print(scraper.userMeta(profile_id='shervinbdndev', totalGames=True))\r\n\r\n    print(scraper.userMeta(profile_id='shervinbdndev', totalGroupsJoined=True))\r\n\r\n    print(scraper.userMeta(profile_id='shervinbdndev', totalReviews=True))\r\n\r\n    print(scraper.userMeta(profile_id='shervinbdndev', totalVideosUploaded=True))\r\n\r\n    \r\n\r\n    # use can use both methods on gathering the user data.\r\n\r\n    print(scraper.userMeta(profile_code='76561198358095760', totalAwards=True))\r\n\r\n    print(scraper.userMeta(profile_code='76561198358095760', totalFriends=True))\r\n\r\n    .\r\n\r\n    .\r\n\r\n    .\r\n\r\n    \r\n\r\n    # here's an Example of put User's last 3 games played into variables by using the function below:\r\n\r\n    # Also do not forget that you can initialize the params\r\n\r\n    games_names: list[str] = scraper.last3GamesPlayedMeta(profile_id='shervinbdndev', names=True)\r\n\r\n    games_info: list[str] = scraper.last3GamesPlayedMeta(profile_id='shervinbdndev', info=True)\r\n\r\n\r\n\r\n    # here you can create a dictionary with values of games and keys of User's game info\r\n\r\n    toDictType: dict[str, str] = dict(zip(games_names, games_info))\r\n\r\n    \r\n\r\n    print(toDictType)\r\n\r\n    \r\n\r\n    \r\n\r\n    # Output\r\n\r\n    # {\r\n\r\n    #     'Counter-Strike 2': '1,397 hrs on recordlast played on 27 Nov',\r\n\r\n    #     'ELDEN RING': '254 hrs on recordlast played on 27 Nov',\r\n\r\n    #     'Far Cry 4': '33 hrs on recordlast played on 27 Nov'\r\n\r\n    # }\r\n\r\n    \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nif (__name__ == \"__main__\"):\r\n\r\n    main()\r\n\r\n\r\n\r\n```\r\n\r\n\r\n\r\n<br><br><br>\r\n\r\n\r\n\r\n# New Addons & Changes on Version 1.1.19\r\n\r\n\r\n\r\n## +5 New Functions\r\n\r\n## +2 New Components\r\n\r\n## Package Functionality Stablized\r\n\r\n\r\n\r\n\r\n\r\n```python\r\n\r\n\r\n\r\nfrom lesserapi.steam.backup import GAME_CODES # + New Builtin Backup from Steam Game Codes: ! Do not open this Component\r\n\r\nfrom lesserapi.steam.scraper import SteamScrape\r\n\r\nfrom lesserapi.utils import findGamesWithSameName\r\n\r\n\r\n\r\n\r\n\r\nSTEAM_USERNAME: str = 'shervinbdndev'\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\ndef main() -> None:\r\n\r\n    scraper: SteamScrape = SteamScrape()\r\n\r\n    \r\n\r\n    scraper.startApi(log=True)\r\n\r\n    \r\n\r\n    # Here are 3 Functions that doesn't need to explain what they each do.\r\n\r\n    print(scraper.accountTotalXP(profile_id=STEAM_USERNAME))\r\n\r\n    print(scraper.accountNextLevel(profile_id=STEAM_USERNAME))\r\n\r\n    print(scraper.accountXPNeededForNextLevel(profile_id=STEAM_USERNAME))\r\n\r\n    \r\n\r\n    # Here we have an new function that you can use for finding the exact name of the game.\r\n\r\n    # for example if you run the code below:\r\n\r\n    print(findGamesWithSameName(name='Counter-Strike'))\r\n\r\n\r\n\r\n    # It should give you sth\r\n\r\n\r\n\r\n    # ['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']\r\n\r\n    \r\n\r\n    # After you find the exact name of the game you want, you can use GAME_CODES.\r\n\r\n    # 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.\r\n\r\n    print(scraper.gameDetails(game_code=GAME_CODES['Counter-Strike'], raw_json=True))\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nif (__name__ == \"__main__\"):\r\n\r\n    main()\r\n\r\n\r\n\r\n```\r\n\r\n\r\n\r\n</details>\r\n\r\n\r\n\r\n<details>\r\n\r\n\r\n\r\n<summary style=\"font-size:2rem\">Instagram</summary>\r\n\r\n\r\n\r\n### Not Soon Cause of Filtering\r\n\r\n\r\n\r\n</details>\r\n\r\n\r\n\r\n\r\n\r\n<details>\r\n\r\n\r\n\r\n<summary style=\"font-size:2rem\">Aparat</summary>\r\n\r\n\r\n\r\n### Soon\r\n\r\n\r\n\r\n\r\n\r\n</details>\r\n\r\n\r\n\r\n<br>\r\n\r\n<br>\r\n\r\n<br>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<h1 align='left'>Enjoy :)</h1>\r\n\r\n\r\n\r\n<br>\r\n\r\n<h3><b>Package Uploaded in PYPI :<a href=\"https://pypi.org/project/lesserapi/\">Here</a></b></h3>\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A python Package API for gathering Users Information in some Platforms.",
    "version": "1.1.19",
    "project_urls": {
        "Source": "https://www.github.com/lesserapi/lesserapi/"
    },
    "split_keywords": [
        "python",
        "api",
        "github",
        "github_api",
        "github_package"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b05b825ba89cf41ba67742359121127dad5c2119dc7a29212606594ddd169e9a",
                "md5": "b159d6cef955e3dbe18d08d896db4a61",
                "sha256": "a6056130121f308abfef98ffa66252cd43d197abebfd628122d0ade79dfe2df7"
            },
            "downloads": -1,
            "filename": "lesserapi-1.1.19-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b159d6cef955e3dbe18d08d896db4a61",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 2484792,
            "upload_time": "2023-12-05T13:26:03",
            "upload_time_iso_8601": "2023-12-05T13:26:03.083367Z",
            "url": "https://files.pythonhosted.org/packages/b0/5b/825ba89cf41ba67742359121127dad5c2119dc7a29212606594ddd169e9a/lesserapi-1.1.19-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "96012e3f2311acf308a60266fed5420f5a467e5adf98160ada365760026a6182",
                "md5": "5bca1616b54ca881a90c9485c964ff8b",
                "sha256": "db273e62c967504b3f3cb8de901cdeca107bd53be311d756c0c7516d2424386b"
            },
            "downloads": -1,
            "filename": "lesserapi-1.1.19.tar.gz",
            "has_sig": false,
            "md5_digest": "5bca1616b54ca881a90c9485c964ff8b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 2461692,
            "upload_time": "2023-12-05T13:26:57",
            "upload_time_iso_8601": "2023-12-05T13:26:57.243669Z",
            "url": "https://files.pythonhosted.org/packages/96/01/2e3f2311acf308a60266fed5420f5a467e5adf98160ada365760026a6182/lesserapi-1.1.19.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-12-05 13:26:57",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "lesserapi",
    "github_project": "lesserapi",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "lesserapi"
}
        
Elapsed time: 0.29504s