الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

للتعامل مع قوائم التشغيل PLS

بدأه ahmed_youssef في 20 مارس 2013 · 1 رد · 486 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

صيغة PLS هي صيغة لتمثيل قوائم تشغيل ملفات ال multimedia ستجدها مستخدمة في برامج عديدة مثل Winamp و VLC وغيرها 

 

المستودع:   https://bitbucket.org/xmonader/pls/src

 

المهم ، أنا أفضل أن أسحب الملفات بالمجلد وليس ملف ملف فكنت في حاجة لعمل ملف صغير يقوم بتوليد/معالجة ملفات ال PLS ولحسن الحظ ملفات ال PLS هي عبارة عن ملف INI مع بعض التخصيص فبكل سهولة نستطيع إستخدام مكتبة configparser

 

 

 
from ConfigParser import ConfigParser
 
class PlaylistConfigParser(ConfigParser):
    PLAYLISTSECTION="playlist"
 
    def number_of_entries(self):
        return self.getint(PlaylistConfigParser.PLAYLISTSECTION, "NumberOfEntries")
 
    def ientries(self):
###NOTE: if the title isn't provided -> return the filename
        for i in range(1, self.number_of_entries() +1 ):
            path=self.get(PlaylistConfigParser.PLAYLISTSECTION, "File%d"%i)
            title=path
            try:
                title=self.get(PlaylistConfigParser.PLAYLISTSECTION, "Title%d"%i)
            except: 
                pass #already handled 
            yield (path, title )
 
    def next_id(self):
        return self.number_of_entries() +1
 
    def add_entry(self, title, path):
        entryid=self.next_id()
        nentries=self.number_of_entries()
        self.set(PlaylistConfigParser.PLAYLISTSECTION, "File%d"%entryid, path)
        self.set(PlaylistConfigParser.PLAYLISTSECTION, "Title%d"%entryid, title)
        #increment the number of files.
        self.set(PlaylistConfigParser.PLAYLISTSECTION, "NumberOfEntries", nentries+1) 
 
    def entries(self):
        return tuple(self.ientries)
    
 
def openlist(path):
    pcp=PlaylistConfigParser()
    pcp.read(path)
    return pcp
    
 
 
def test():
    f="/home/striky/Playlist.pls"
    pcp=PlaylistConfigParser()
    pcp.read(f)
    print pcp.number_of_entries()
    print pcp.entries()
 
if __name__=="__main__":
 
    test()

 

 

كل ماعليك هو 

 

 

import plsopenlist(PLAYLIST PATH)

 

 

استبدل PLAYLIST PATH بمسار ملف ال playlist 

تستطيع عبر entries الحصول على مكونات القائمة (الملف والعنوان)

 

add_entry لإضافة ملف جديد

number_of_entries للحصول على عدد الملفات في قائمة التشغيل

تم تعديل هذه المشاركة بواسطة ahmed_youssef في 21 مارس 2013 في 14:57

1
(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#2

لاحظت مشكلة وهي عن إضافة ملف جديد لايتم زيادة NumberOfEntries وتم حلها 

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

مواضيع مشابهة