Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sdebby/apihole
APihole- an API for working with Pi Hole
https://github.com/sdebby/apihole
api pihole pihole-dashboard
Last synced: about 15 hours ago
JSON representation
APihole- an API for working with Pi Hole
- Host: GitHub
- URL: https://github.com/sdebby/apihole
- Owner: sdebby
- License: mit
- Created: 2023-04-12T19:22:43.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-03-08T11:52:38.000Z (7 months ago)
- Last Synced: 2024-03-08T12:53:34.182Z (7 months ago)
- Topics: api, pihole, pihole-dashboard
- Language: Python
- Homepage:
- Size: 13.7 KB
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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 PiHolePiHoleAPI='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)
```
### TODOs## Feedback
If you have any feedback, please reach out to us at [email protected]