APiHole


NameAPiHole JSON
Version 0.0.3 PyPI version JSON
download
home_pagehttps://github.com/sdebby/APiHole
SummaryAPI module for Pi Hole
upload_time2024-06-24 18:31:28
maintainerNone
docs_urlNone
authorShmulik Debby
requires_pythonNone
licenseMIT
keywords pihole pi.hole api
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
# APiHole

This is an easy python API module for comunicating with Pi Hole through API.
Works with AdminLTE v. 3

## Install:

```bash
pip install APiHole
```

## Get your Pi Hole API key from here:

```bash
sudo cat /etc/pihole/setupVars.conf | grep PASSWORD
```

## Usage
```python
from APiHole import PiHole

PiHoleAPI='your pi hole API key'
PiIP='your pi hole IP'

# Print API version (good for testing communication), (return string)
print(PiHole.GetVer(PiIP))

# get PiHole summary style format, (return dict)
print(PiHole.GetSummary(PiIP,PiHoleAPI,False))

# get PiHole summary raw format, (return dict)
print(PiHole.GetSummary(PiIP,PiHoleAPI,True))

# Get PiHole gravity status , (return dict)
print(PiHole.GetGravity(PiIP,PiHoleAPI))

# Get PiHole status, (return string)
PiHole.GetStatus(PiIP)

# Get PiHole 7 top items, split and convert to list (return dict)
Items=PiHole.GetTopItems(PiIP,PiHoleAPI,7)
if not len(Items) == 0:
    ItemsTop=Items['top_queries']
    resultListTOP = list(ItemsTop.items())
    rtnTOP=[]
    ItemsADS=Items['top_ads']
    resultListADS = list(ItemsTop.items())
    rtnTOP=[]
    rtnADS=[]
    for l in range(len(resultListTOP)):
        rtnTOP.append(str(resultListTOP[l][0])+' : '+str(resultListTOP[l][1]))
        rtnADS.append(str(resultListADS[l][0])+' : '+str(resultListADS[l][1]))

    print('top_queries\n'+str(rtnTOP))
    print('top_ads\n'+str(rtnADS))

# Enable PiHole (return string)
PiHole.Enable(PiIP,PiHoleAPI)

# Disable PiHole for 2 sec (return string)
PiHole.Disable(PiIP,PiHoleAPI,2)

# Get top clients (return string)
PiHole.GetTopClients(PiIP,PiHoleAPI)

# Add google.com to white list (return boolean)
PiHole.AddWhite(PiIP,PiHoleAPI,'google.com')

# Add google.com to block list (return boolean)
PiHole.AddBlack(PiIP,PiHoleAPI,'google.com')

# Get recent blocked domain, (return string)
PiHole.GetRecentBlocked(PiIP,PiHoleAPI)

# Get destinations in %, (return dict)
PiHole.GetDestination(PiIP,PiHoleAPI)

# Get query types in %, (return dict)
PiHole.GetQueryTypes(PiIP,PiHoleAPI)

# Get clients names, (return dict)
PiHole.GetClientNames(PiIP,PiHoleAPI)

# Get data of clients over time, (return dict)
PiHole.GetOverTimeDataClients(PiIP,PiHoleAPI)

# Get pi hole DNS port, (return string)
PiHole.GetDnsPort(PiIP,PiHoleAPI)

# Get pi hole chche info, (return dict)
PiHole.GetCacheInfo(PiIP,PiHoleAPI)

# Get pi hole data of 10 min 
PiHole.GetOverTimeData10mins(PiIP,PiHoleAPI)

# Remove 'google.com' from block list
PiHole.RemoveBlock(PiIP,PiHoleAPI,'google.com')

# Add facebook regex to block list (return boolean)
PiHole.AddRegexBlock(PiIP,PiHoleAPI,'facebook')

# Remove facebook regex from block list (return boolean)
PiHole.RemoveRegexBlock(PiIP,PiHoleAPI,'facebook')
```
### TODOs


### Change log
* rev 0.0.1 - Initial release.
* rev 0.0.2 (by Dan Taeyoung)
	* Typo fix.
	* Add RemoveBlock function.
	* Add AddRegexBlock function.
	* Add RemoveRegexBlock function.
* rev 0.0.3 - Add raw syle summary (asked by GalFawkes)

## Feedback

If you have any feedback, please reach out to us at shmulik.debby@gmail.com

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/sdebby/APiHole",
    "name": "APiHole",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "PiHole, pi.hole, API",
    "author": "Shmulik Debby",
    "author_email": "shmulik.debby@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/c2/36/f990387c4c2592cb5e5e539941561fc0519d10e24b2b818e1fed61c553aa/APiHole-0.0.3.tar.gz",
    "platform": null,
    "description": "\r\n# APiHole\r\n\r\nThis is an easy python API module for comunicating with Pi Hole through API.\r\nWorks with AdminLTE v. 3\r\n\r\n## Install:\r\n\r\n```bash\r\npip install APiHole\r\n```\r\n\r\n## Get your Pi Hole API key from here:\r\n\r\n```bash\r\nsudo cat /etc/pihole/setupVars.conf | grep PASSWORD\r\n```\r\n\r\n## Usage\r\n```python\r\nfrom APiHole import PiHole\r\n\r\nPiHoleAPI='your pi hole API key'\r\nPiIP='your pi hole IP'\r\n\r\n# Print API version (good for testing communication), (return string)\r\nprint(PiHole.GetVer(PiIP))\r\n\r\n# get PiHole summary style format, (return dict)\r\nprint(PiHole.GetSummary(PiIP,PiHoleAPI,False))\r\n\r\n# get PiHole summary raw format, (return dict)\r\nprint(PiHole.GetSummary(PiIP,PiHoleAPI,True))\r\n\r\n# Get PiHole gravity status , (return dict)\r\nprint(PiHole.GetGravity(PiIP,PiHoleAPI))\r\n\r\n# Get PiHole status, (return string)\r\nPiHole.GetStatus(PiIP)\r\n\r\n# Get PiHole 7 top items, split and convert to list (return dict)\r\nItems=PiHole.GetTopItems(PiIP,PiHoleAPI,7)\r\nif not len(Items) == 0:\r\n    ItemsTop=Items['top_queries']\r\n    resultListTOP = list(ItemsTop.items())\r\n    rtnTOP=[]\r\n    ItemsADS=Items['top_ads']\r\n    resultListADS = list(ItemsTop.items())\r\n    rtnTOP=[]\r\n    rtnADS=[]\r\n    for l in range(len(resultListTOP)):\r\n        rtnTOP.append(str(resultListTOP[l][0])+' : '+str(resultListTOP[l][1]))\r\n        rtnADS.append(str(resultListADS[l][0])+' : '+str(resultListADS[l][1]))\r\n\r\n    print('top_queries\\n'+str(rtnTOP))\r\n    print('top_ads\\n'+str(rtnADS))\r\n\r\n# Enable PiHole (return string)\r\nPiHole.Enable(PiIP,PiHoleAPI)\r\n\r\n# Disable PiHole for 2 sec (return string)\r\nPiHole.Disable(PiIP,PiHoleAPI,2)\r\n\r\n# Get top clients (return string)\r\nPiHole.GetTopClients(PiIP,PiHoleAPI)\r\n\r\n# Add google.com to white list (return boolean)\r\nPiHole.AddWhite(PiIP,PiHoleAPI,'google.com')\r\n\r\n# Add google.com to block list (return boolean)\r\nPiHole.AddBlack(PiIP,PiHoleAPI,'google.com')\r\n\r\n# Get recent blocked domain, (return string)\r\nPiHole.GetRecentBlocked(PiIP,PiHoleAPI)\r\n\r\n# Get destinations in %, (return dict)\r\nPiHole.GetDestination(PiIP,PiHoleAPI)\r\n\r\n# Get query types in %, (return dict)\r\nPiHole.GetQueryTypes(PiIP,PiHoleAPI)\r\n\r\n# Get clients names, (return dict)\r\nPiHole.GetClientNames(PiIP,PiHoleAPI)\r\n\r\n# Get data of clients over time, (return dict)\r\nPiHole.GetOverTimeDataClients(PiIP,PiHoleAPI)\r\n\r\n# Get pi hole DNS port, (return string)\r\nPiHole.GetDnsPort(PiIP,PiHoleAPI)\r\n\r\n# Get pi hole chche info, (return dict)\r\nPiHole.GetCacheInfo(PiIP,PiHoleAPI)\r\n\r\n# Get pi hole data of 10 min \r\nPiHole.GetOverTimeData10mins(PiIP,PiHoleAPI)\r\n\r\n# Remove 'google.com' from block list\r\nPiHole.RemoveBlock(PiIP,PiHoleAPI,'google.com')\r\n\r\n# Add facebook regex to block list (return boolean)\r\nPiHole.AddRegexBlock(PiIP,PiHoleAPI,'facebook')\r\n\r\n# Remove facebook regex from block list (return boolean)\r\nPiHole.RemoveRegexBlock(PiIP,PiHoleAPI,'facebook')\r\n```\r\n### TODOs\r\n\r\n\r\n### Change log\r\n* rev 0.0.1 - Initial release.\r\n* rev 0.0.2 (by Dan Taeyoung)\r\n\t* Typo fix.\r\n\t* Add RemoveBlock function.\r\n\t* Add AddRegexBlock function.\r\n\t* Add RemoveRegexBlock function.\r\n* rev 0.0.3 - Add raw syle summary (asked by GalFawkes)\r\n\r\n## Feedback\r\n\r\nIf you have any feedback, please reach out to us at shmulik.debby@gmail.com\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "API module for Pi Hole",
    "version": "0.0.3",
    "project_urls": {
        "Homepage": "https://github.com/sdebby/APiHole"
    },
    "split_keywords": [
        "pihole",
        " pi.hole",
        " api"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c236f990387c4c2592cb5e5e539941561fc0519d10e24b2b818e1fed61c553aa",
                "md5": "74c901f2703b0244fce14b6af2f51966",
                "sha256": "0d9c0eaef2a97950e62486694ad2ed939d1e8cd30541fea686d763896096c226"
            },
            "downloads": -1,
            "filename": "APiHole-0.0.3.tar.gz",
            "has_sig": false,
            "md5_digest": "74c901f2703b0244fce14b6af2f51966",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 5184,
            "upload_time": "2024-06-24T18:31:28",
            "upload_time_iso_8601": "2024-06-24T18:31:28.764396Z",
            "url": "https://files.pythonhosted.org/packages/c2/36/f990387c4c2592cb5e5e539941561fc0519d10e24b2b818e1fed61c553aa/APiHole-0.0.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-24 18:31:28",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "sdebby",
    "github_project": "APiHole",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "apihole"
}
        
Elapsed time: 0.28925s