[Çözüldü] *.desktop dosyasından girdileri almak

Başlatan mbt28, 16 Eylül 2008 - 16:15:01

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

mbt28

Python ile *.desktop dosyasındaki girdileri nasıl alırım. Mesela Icon girdisini almak istesem nasıl yaparım? Python-gconf ile yapabiliyorum ama işimi en az bağımlılık ile halletmek istiyorum.

caglar.dursun

Dosyayı açıp readline ile text dosyası gibi okuyup parse etmen gerekiyor.

mbt28

Çoktan hallettim aylardır yazdığım betik ile icewm ve fluxbox menü dosyamı oluşturuyorum. İsteyen olursa paylaşabilirim.

heartsmagic

Sadece başlığa sebep olan problemin çözümünü paylaşırsan yeterli olur. Biz de konuyu kapatırız böylece.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

mbt28

ilk 30 satır filan açıklıyor birazda kopya çektim.

#! /usr/bin/python
#-*-coding:utf-8-*-
#- btekbas@gmail.com (btekbas@gmail.com) - GPL licence
#- Based on gnome2fluxmenu
#- converts the Gnome menu (/usr/share/applications/*.desktop) into a icewm menu
#- usage: python icemenuyap.py > icemenu.txt
#- or:    python icemenuyap.py > ~/.icewm/menu   (please backup 'menu' document before)
#- note: results may need some small adjustments, like apps turned on/off with Alacarte
import os,sys,random,mimetypes
gnmp_st="/usr/share/applications"
catacce_sl=[""]*512;catutil_sl=[""]*512;catgame_sl=[""]*512;catgrap_sl=[""]*512
catnetw_sl=[""]*512;catoffi_sl=[""]*512;catothe_sl=[""]*512;catdeve_sl=[""]*512
catauvd_sl=[""]*512;catsyst_sl=[""]*512;catsysp_sl=[""]*512;catsysa_sl=[""]*512
cntacce=0;cntutil=0;cntgame=0;cntgrap=0;cntnetw=0;cntoffi=0
cntothe=0;cntdeve=0;cntauvd=0;cntsyst=0;cntsysp=0;cntsysa=0
diritems_sl=os.listdir(gnmp_st)
for item in diritems_sl:
  finp_st=os.path.join(gnmp_st,item)
  if finp_st.endswith(".desktop"):
    finp_fl=open(finp_st,"r")
    cate_st="";name_st="";exec_st="";catswc=0
    while True:
      text_st=finp_fl.readline()
      if len(text_st)==0:break
      text_st=text_st.replace("\n","")
      if text_st.startswith("Categories="):
        cate_st=text_st
        if cate_st.find("Accessibility")>0:catswc+=   1
        if cate_st.find("Utility")>0:      catswc+=   2
        if cate_st.find("Game")>0:         catswc+=   4
        if cate_st.find("Graphics")>0:     catswc+=   8
        if cate_st.find("Network")>0:      catswc+=  16
        if cate_st.find("Office")>0:       catswc+=  32
        if cate_st.find("Development")>0:  catswc+=  64
        if cate_st.find("AudioVideo")>0:   catswc+= 128
        if cate_st.find("System")>0:       catswc+= 256
        if cate_st.find("Settings")>0:     catswc+= 512
        if cate_st.find("Core")>0:         catswc+=1024
      if text_st.startswith("Name="):
        name_st=text_st[5:];name_st=name_st.replace(")","\\)")
      if text_st.startswith("Name[tr]="):
name_st=text_st[5:];name_st=name_st.replace("tr]=","");name_st=name_st.replace(")","\\)")
      if text_st.startswith("Icon="):
icon_st=text_st[5:]
      if text_st.startswith("Exec="):
        exec_st=text_st[5:]
    icepr_st="prog "+"\""+name_st+"\""+" "+"\""+icon_st+"\""+" "+exec_st
    if (catswc&   1)==  1:
      catacce_sl[cntacce]=icepr_st;cntacce+=1
    if (catswc&   2)==  2:
      catutil_sl[cntutil]=icepr_st;cntutil+=1
    if (catswc&   4)==  4:
      catgame_sl[cntgame]=icepr_st;cntgame+=1
    if (catswc&   8)==  8:
      catgrap_sl[cntgrap]=icepr_st;cntgrap+=1
    if (catswc&  16)== 16:
      catnetw_sl[cntnetw]=icepr_st;cntnetw+=1
    if (catswc&  32)== 32:
      catoffi_sl[cntoffi]=icepr_st;cntoffi+=1
    if (catswc&1023)==  0:
      catothe_sl[cntothe]=icepr_st;cntothe+=1
    if (catswc&  64)== 64:
      catdeve_sl[cntdeve]=icepr_st;cntdeve+=1
    if (catswc& 128)==128:
      catauvd_sl[cntauvd]=icepr_st;cntauvd+=1
    if (catswc& 768)==256:
      catsyst_sl[cntsyst]=icepr_st;cntsyst+=1
    if (catswc& 768)==512:
      catsysp_sl[cntsysp]=icepr_st;cntsysp+=1
    if (catswc& 768)==768:
      catsysa_sl[cntsysa]=icepr_st;cntsysa+=1
    finp_fl.close()
print"  menu \"Donatılar\" applications-accessories {"
for i in range(0,cntutil-1,1):print"    "+catutil_sl[i]
for i in range(0,cntacce-1,1):print"    "+catacce_sl[i]
print"  }";print"  menu \"Oyunlar\" applications-games {"
for i in range(0,cntgame-1,1):print"    "+catgame_sl[i]
print"  }";print"  menu \"Resim\" applications-graphics {"
for i in range(0,cntgrap-1,1):print"    "+catgrap_sl[i]
print"  }";print"  menu \"Ağ Araçları\" applications-internet {"
for i in range(0,cntnetw-1,1):print"    "+catnetw_sl[i]
print"  }";print"  menu \"Ofis\" applications-office {"
for i in range(0,cntoffi-1,1):print"    "+catoffi_sl[i]
print"  }";print"  menu \"Diğer\" applications-other {"
for i in range(0,cntothe-1,1):print"    "+catothe_sl[i]
print"  }";print"  menu \"Geliştirme\" applications-development.png {"
for i in range(0,cntdeve-1,1):print"    "+catdeve_sl[i]
print"  }";print"  menu \"Çokluortam\" applications-multimedia {"
for i in range(0,cntauvd-1,1):print"    "+catauvd_sl[i]
print"  }";print"  menu \"Sistem Araçları\" applications-utilities {"
for i in range(0,cntsyst-1,1):print"    "+catsyst_sl[i]
print"  }"
print"  menu \"Sistem\" applications-system {"
print"  menu \"Tercihler\" preferences-system {"
for i in range(0,cntsysp-1,1):print"      "+catsysp_sl[i]
print"    }";print"  menu \"Yönetim\" preferences-other {"
for i in range(0,cntsysa-1,1):print"      "+catsysa_sl[i]
print"}"

heartsmagic

Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.