Skip to content

A python Package API for gathering Users Information in some Platforms.

License

Notifications You must be signed in to change notification settings

lesserapi/lesserapi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lesserapi

Version 1.1.20

Written with Python 3.11.3



Ready To Use

Developed by Shervin Badanara (shervinbdndev) on Github




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

About

A python Package API for gathering Users Information in some Platforms.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages