[Python 3.X] GitHub Download Counter Code by mmilidoni

tom_mai78101

The Helper Connoisseur / Ex-MineCraft Host
Staff member
Reaction score
1,259
This is a Python 3.X port of mmilidoni's GitHub Download Counter Python 2.X script.

I want to use a counter to check and see how many people have downloaded my releases at GitHub. Unfortunately, GitHub disabled this would-be-expected download stats feature since 3 years ago, due to "bandwidth hog issues, etc.", which is a really lame reason in my opinion.

To use the Python 3.X script, go read his README.md here. It's pretty straightforward and simple, which is something I personally liked.

Code:
#!/usr/bin/env python
 
import sys
 
if (len(sys.argv) < 2):
    print("Usage: " + sys.argv[0] + " github-user [github-project]")
    exit(1)
 
try:
  import requests
except ImportError:
    print("Error: requests is not installed")
    print("Installing Requests is simple with pip:\n  pip install requests")
    print("More info: http://docs.python-requests.org/en/latest/")
    exit(1)
import io
import json
 
 
def dict_to_object(d):
    if '__class__' in d:
        class_name = d.pop('__class__')
        module_name = d.pop('__module__')
        module = __import__(module_name)
        class_ = getattr(module, class_name)
        args = dict((key.encode('ascii'), value) for key, value in d.items())
        inst = class_(**args)
    else:
        inst = d
    return inst
 
 
def ensure_str(s):
    if isinstance(s, unicode):
        s = s.encode('utf-8')
    return s
 
full_names = []
 
if len(sys.argv) == 3:
    full_names.append(sys.argv[1] + "/" + sys.argv[2])
else:
    buf = io.StringIO()
    r = requests.get('https://api.github.com/users/' + sys.argv[1] + '/repos')
    myobj = r.json()
 
    for rep in myobj:
        full_names.insert(0, ensure_str(rep['full_name']))
 
 
for full_name in full_names:
    buf = io.StringIO()
    try:
        r = requests.get('https://api.github.com/repos/' + full_name + '/releases')
        myobj = r.json()
 
        for p in myobj:
            if "assets" in p:
                for asset in p['assets']:
                    print((asset['name'] + ": " + str(asset['download_count']) +
                          " downloads"))
            else:
                print("No data")
    except:
        pass
To use this Python 3.X script, copy the entire code onto Notepad++. Then "save as" a file with no file extension. (i.e., Image.png ---> Image) After that, if you have Python 3.4 binaries installed, execute the Python code.
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • jonas jonas:
    Good to see you Varine!
  • The Helper The Helper:
    Happy Sunday!
    +1
  • V-SNES V-SNES:
    Happy Sunday!
    +1
  • ToshibaNuon ToshibaNuon:
    Happy sunday!
    +2
  • The Helper The Helper:
    And its Friday!
  • The Helper The Helper:
    Happy Saturday!
    +1
  • V-SNES V-SNES:
    Happy Saturday!
  • The Helper The Helper:
    Happy Monday!
  • V-SNES V-SNES:
    Happy Friday!
    +1
  • The Helper The Helper:
    Happy Friday!
    +1
  • tom_mai78101 tom_mai78101:
    Starting this upcoming Thursday, I will be in Japan for 10 days.
  • tom_mai78101 tom_mai78101:
    Thursday - Friday will be my Japan arrival flight. 9 days later, on a Sunday, will be my return departure flight.
    +2
  • The Helper The Helper:
    Hope you have safe travels my friend!
    +1
  • vypur85 vypur85:
    Wow spring time in Japan is awesome. Enjoy!
  • The Helper The Helper:
    Hopefully it will be more pleasure than work
  • vypur85 vypur85:
    Recently tried out ChatGPT about WE triggering. Wow it's capable of giving a somewhat legitimate response.
  • The Helper The Helper:
    I am sure it has read all the info on the forums here
  • The Helper The Helper:
    i think triggering is just scripting and chatgpt is real good at code
  • vypur85 vypur85:
    Yeah I suppose so. It's interesting how it can explain in so much detail.
  • vypur85 vypur85:
    But yet it won't work.
  • The Helper The Helper:
    it does a bad ass job doing excel vba code it has leveled me up at my job when I deal with excel that is for sure
  • vypur85 vypur85:
    Nice! I love Excel coding as well. Has always been using Google to help me. Maybe I'll use ChatGPT next time when I need it.
  • The Helper The Helper:
    yeah whatever it puts out even if it is not perfect I can fix it and the latest version of chatgpt can create websites from pictures it will not be long until it can do that with almost all the tools
    +1

    The Helper Discord

    Members online

    No members online now.

    Affiliates

    Hive Workshop NUON Dome World Editor Tutorials

    Network Sponsors

    Apex Steel Pipe - Buys and sells Steel Pipe.
    Top