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

طلب مساعدة لتعديل في سكريبت ..

بدأه reda23 في 27 يناير 2014 · 4 رد · 377 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

 

أنا أستعمل برنامج xbmc مع بلوغين atn network
البلوغين هو بلغة phyton وهو يجلب ملف القنوات channels.xml من داخل مجلد البلوغين الموجود على جهاز الكمبيوتر.
البرنامج استعمله ويستعمله كذلك بعض اصدقائي

المشكل أنني إذا عدلت على ملف القنوات باضافة او حذف قناة فيجب ان انقل الملف الى كل اجهزة اصدقائي كل واحد على حدى
فلو كان بالامكان ان اعدل على البلوغين كي يكون مساره هو رابط انترنت مثلا

وبهذا ارفع الملف المعدل على رابط الانترنت ويتم تحديثه اوتوماتيكيا في كل الاجهزة الاخرى

 

 

هذا هو الملف المسؤول عن جلب ملف القنوات  

 

والكود الأصلي لونته باللون الأحمر

 

أما الكود المرغوب فيه كمثال لونته باللون الأخضر

 

جزاكم الله خيرا وشكرا لكم مسبقا 

import os
import sys
from BeautifulSoup import BeautifulSoup

class Category:
    def __init__(self, categoryEl):
        self.title = categoryEl['title']

class Channel:
    def __init__(self, channelEl):
        self.id = channelEl['id']
        self.title = channelEl['title']
        self.thumbnail = channelEl['thumbnail']

class UtilsChannelsFile:

    _channelsXmlFile = os.path.join('resources', 'data', 'channels.xml')  // red .. original code

    _channelsXmlFile = os.path.join('http://www.exemple.com/channels.xml') // green .. my code

    def __init__(self):
        self.pluginPath = sys.modules["__main__"].pluginPath

    def readChannelsFileAsSoup(self):
        filename = os.path.join(self.pluginPath, self._channelsXmlFile)
        handler = open(filename).read()
        return BeautifulSoup(handler)

    def getCategories(self):
        soup = self.readChannelsFileAsSoup()
        categoryListEl = soup.findAll('category')

        list = []

        for categoryEl in categoryListEl:
            list.append(Category(categoryEl))

        return list

    def getChannelsByCategoryTitle(self, categoryTitle):
        soup = self.readChannelsFileAsSoup()
        channelListEl = soup.find('category', {'title' : categoryTitle}).findAll('channel')

        list = []

        for channelEl in channelListEl:
            list.append(Channel(channelEl))

        return list

UtilsChannelsFile.py

#2
urllib2.urlopen(YOUR_URL_GOES_HERE).read()

للحصول على محتوى ما من الشبكة

(map share people)

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

#3

شكرا لك أخي الكريم على الرد 

 

قمت بوضع الكود هكذا

_channelsXmlFile = urllib2.urlopen(http://www.exemple/channels.xml).read()

مع وضع الاستعلام التالي في أول الملف

import urllib2

ولكن للاسف لا يقوم بجلب الملف ويعطي خطأ

 

فاذا امكن اخي الكريم ارفاق الملف معدلا من طرفك مع الشكر الجزيل مسبقا

 

ahmed_youssef كتب:
urllib2.urlopen(YOUR_URL_GOES_HERE).read()

للحصول على محتوى ما من الشبكة

 

 

UtilsChannelsFile.py

#4

العنوان يجب أن يوضع بين علامتي تنصيص " "

 

_channelsXmlFile = urllib2.urlopen("http://www.exemple/channels.xml").read()

بالتوفيق

(map share people)

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

#5

شكرا لك اخي على متابعتك

للأسف تم تجريب وضع علامتي التنصيص ولكن دون جدوى

أظن أنه يجب تغيير كودات اخرى في الملف

 

ارجو مساعدتك اخي فانا ادرس في الغربة وهنا يصعب استقبال القنوات العربية 

 

بالتوفيق لك

 

ahmed_youssef كتب:

العنوان يجب أن يوضع بين علامتي تنصيص " "

 

_channelsXmlFile = urllib2.urlopen("http://www.exemple/channels.xml").read()

بالتوفيق

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