Coder Social home page Coder Social logo

hemantapkh / ncellapp Goto Github PK

View Code? Open in Web Editor NEW
38.0 3.0 5.0 169 KB

📞 Unofficial Python API Wrapper for Ncell

Home Page: https://ncellapp.rtfd.io

License: MIT License

Python 100.00%
ncell ncell-api ncell-app ncell-api-wrapper python3 axiata ncellapp hacktoberfest

ncellapp's Introduction

📞Unofficial Python API Wrapper of Ncell

NcellPy

Stars Issues Contributors

This is the unofficial python API wrapper of Ncell App.

⚠️ Disclaimer: This project is in no way affiliated with, authorized, maintained, sponsored or endorsed by Ncell or any of its affiliates or subsidiaries. This is an independent and unofficial API. Use at your own risk.

Installation

  • Install via PyPi

    pip install ncellapp
  • Install from the source

    git clone https://github.com/hemantapkh/ncellapp && cd ncellapp && python setup.py sdist && pip install dist/*

Note: You may need to change the pip to pip3 or python to python3 on the above command depending on your system.

Start guide

Quick Examples

1. Getting a Token

>>> from ncellapp import register

>>> reg = register('98140*****')
>>> reg.generateOtp()
<Response [OTP1000]>
>>> reg.validateOtp('569845')
<Response [OTP1000]>
>>> reg.token
'eyJt...'

2. Viewing the balance

>>> from ncellapp import ncell

>>> account = ncell(token='eyJtc...', autoRefresh=True)
>>> balance = account.balance()
>>> balance.content
{'queryBalanceResponse': {'smsBalanceList': [], 'dataBalanceList': [], 'creditBalanceDetail': {'expiryDate': 'Sep 12 2021 23:59:59', 'freeSmsCount': 10, 'tariffPlanRateOffNet': 0.0, 'balance': 4.89793, 'unBilledAmount': 0.0, 'tariffPlanName': 'Sajilo', 'lastLoanTakenDate': 'Mar 23 2021 08:22:54', 'lastRechargeDate': 'Apr 27 2021 00:36:58', 'loanAmount': 0.0, 'creditUom': 'Rs.', 'tariffPlanRateOnNet': 0.0}, 'msisdn': '98140*****', 'voiceBalanceList': [], 'paidMode': 'Prepaid'}}

3. Sending a free SMS

>>> sms = account.sendFreeSms(980799****, 'Hey there!, I am sending you an SMS with Python!')
>>> sms.content
{'sendFreeSMSResponse': {'description': 'Operation succeeded', 'status': 'success', 'statusCode': '0'}}
>>> sms.responseHeader
{'responseDesc': 'Success', 'requestId': '1626770987071NCELL968', 'responseDescDisplay': 'SMS1000', 'responseCode': '200', 'timestamp': '2021-07-20T14:34:47.12712'}

4. Manually refreshing the token and storing the refreshed token (Not recommended)

# This function will be executed after refreshing the token
>>>def storeToken(token):
...     with open('token','w') as f_in:
...         f_in.write(token)

# Creating an object of ncell which contains 'afterRefresh' and 'args' arguments.
# See the documentation for more information.
>>> ac = ncellapp.ncell(token=token, afterRefresh=[__name__, 'storeToken'], args=['__token__'])

# Token expired
>>> ac.balance()
<Response [LGN2001]>

# Manually refreshing the token
>>> ac.refreshToken()
<Response [OTP1000]>

# Viewing the balance after manually refreshing the token
>>> ac.balance()
<Response [BAL1000]>

5. Refreshing the token automatically and storing the refreshed Token (Recommended)

# This function will be executed after refreshing the token.
>>>def storeToken(token):
    with open('token','w') as f_in:
        f_in.write(token)

# Creating an object of ncell and setting autoRefresh=True. 
# See documentation for more information.
>>> ac = ncellapp.ncell(token=token, autoRefresh=True, afterRefresh=[__name__, 'storeToken'], args=['__token__'])

# Token will be refreshed and stored automatically if it expires
>>> ac.balace()
<Response [BAL1000]>

Detailed documentation

The documentation of ncellapp is available here.

Contributing

Any contributions you make are greatly appreciated.

For minor fix, you can directly create a pull request and for adding a new feature, let's first discuss about it.

Thanks to every contributors who have contributed in this project.

License

Distributed under the MIT License. See LICENSE for more information.


Author/Maintainer: Hemanta Pokharel

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.