#!/usr/bin/env python # -*- coding: utf-8 -*- # # openbox-pipemenu-steam.py # # Copyright 2017 kirbylife # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. # # import os try: from commands import getoutput, getstatusoutput except: from subprocess import getoutput, getstatusoutput STEAM_URL = os.environ['HOME'] + "/.steam/steam/steamapps" def set_item(name, appid=None): if appid: print("steam steam://rungameid/" + appid + "") else: print("") def main(args): games = [] ### Header ### print("") print("") ### ### if getstatusoutput("cd " + STEAM_URL)[0] == 1: set_item("Steam not installed") else: games = getoutput("ls " + STEAM_URL + " | grep acf").split("\n") if not games: set_item("0 games installed") else: for c in games: appid = "" name = "" manifest = open(STEAM_URL + "/" + c, "r") data = manifest.read().split("\n") manifest.close() for f in data: if '"appid"' in f: appid = f.split('"')[3] elif '"name"' in f: name = f.split('"')[3] set_item(name, appid) ### Footer ### print("") ### ### return 0 if __name__ == '__main__': import sys sys.exit(main(sys.argv))