Пример #1
0
    def save(self):
        print >> log, "[Manager] Saving..."

        old_bouquets = BouquetsReader().getBouquetsList(self.path)
        if "tv" not in old_bouquets:
            old_bouquets["tv"] = []
        if "radio" not in old_bouquets:
            old_bouquets["radio"] = []
        currentBouquets = {}
        currentBouquets["tv"] = []
        currentBouquets["radio"] = []
        for bouquet in old_bouquets["tv"]:
            currentBouquets["tv"].append(bouquet["filename"])
        for bouquet in old_bouquets["radio"]:
            currentBouquets["radio"].append(bouquet["filename"])
        if "tv" not in self.bouquetsToKeep:
            self.bouquetsToKeep["tv"] = []
        if "radio" not in self.bouquetsToKeep:
            self.bouquetsToKeep["radio"] = []

        print >> log, "[Manager] Bouquets to hide:", self.bouquetsToHide
        print >> log, "[Manager] TV bouquets to keep:", self.bouquetsToKeep[
            "tv"]
        print >> log, "[Manager] Radio bouquets to keep:", self.bouquetsToKeep[
            "radio"]
        #print>>log, "[Manager] Generate main bouquet:", str(self.makemain)
        #print>>log, "[Manager] Generate sections bouquets:", str(self.makesections)
        #print>>log, "[Manager] Generate HD bouquet:", str(self.makehd)
        #print>>log, "[Manager] Generate FTA bouquet:", str(self.makefta)
        print >> log, "[Manager] Add provider prefix to bouqets:", str(
            self.addprefix)

        writer = BouquetsWriter()
        writer.writeLamedb(self.path, self.transponders)
        providers = Providers().read()
        for provider_key in self.bouquetsOrder:
            if provider_key in providers:
                bouquetsToHide = []
                if provider_key in self.bouquetsToHide:
                    # expand section keys in channels numbers
                    sections = sorted(
                        providers[provider_key]["sections"].keys())
                    for bouquetToHide in self.bouquetsToHide[provider_key]:
                        index = sections.index(bouquetToHide)
                        if index == -1:
                            continue

                        if index < len(sections) - 1:
                            bouquetsToHide += range(bouquetToHide,
                                                    sections[index + 1])
                        else:
                            bouquetsToHide += range(bouquetToHide, 65535)

                prefix = ""
                if self.addprefix:
                    prefix = providers[provider_key]["name"]

                current_bouquet_key = self.providerConfigs[
                    provider_key].getArea()
                if current_bouquet_key in providers[provider_key]["bouquets"]:
                    current_bouquet = providers[provider_key]["bouquets"][
                        current_bouquet_key]["bouquet"]
                    current_region = providers[provider_key]["bouquets"][
                        current_bouquet_key]["region"]
                else:
                    current_bouquet = -1
                    current_region = -1

                preferred_order = []
                if self.providerConfigs[provider_key].isMakeNormalMain(
                ) and self.providerConfigs[provider_key].isSwapChannels():
                    for swapchannels_set in providers[provider_key][
                            "swapchannels"]:
                        if len(preferred_order) == 0 and len(
                                swapchannels_set["filters"]) == 0:
                            preferred_order = swapchannels_set[
                                "preferred_order"]
                            continue

                        if len(swapchannels_set["filters"]) > 0:
                            for cfilter in swapchannels_set["filters"]:
                                if cfilter[0] == current_bouquet and cfilter[
                                        1] == current_region:
                                    preferred_order = swapchannels_set[
                                        "preferred_order"]
                                    break

                writer.buildBouquets(self.path,
                                     self.providerConfigs[provider_key],
                                     self.services[provider_key],
                                     providers[provider_key]["sections"],
                                     provider_key, preferred_order,
                                     providers[provider_key]["channelsontop"],
                                     bouquetsToHide, prefix)

        writer.buildBouquetsIndex(self.path, self.bouquetsOrder, providers,
                                  self.bouquetsToKeep, currentBouquets,
                                  self.bouquetsToHide, self.providerConfigs)

        print >> log, "[Manager] Done"
Пример #2
0
 def getBouquetsList(self):
     return BouquetsReader().getBouquetsList(self.path)
Пример #3
0
 def load(self):
     print >> log, "[Manager] Loading settings..."
     reader = BouquetsReader()
     self.transponders = reader.readLamedb(self.path)
     print >> log, "[Manager] Done"
Пример #4
0
	def load(self):
		print>>log, "[Manager] Loading settings..."
		reader = BouquetsReader()
		self.transponders = reader.readLamedb(self.path)
		print>>log, "[Manager] Done"
Пример #5
0
    def save(self, providers, dependent_providers={}):
        #merge dependent providers
        for provider_key in dependent_providers:
            if provider_key in self.services:
                for dependent_key in dependent_providers[provider_key]:
                    if dependent_key in self.services:
                        for type in ["video", "radio"]:
                            for number in self.services[dependent_key][type]:
                                self.services[provider_key][type][
                                    number] = self.services[dependent_key][
                                        type][number]

        print >> log, "[ABM-Manager][save] Saving..."

        old_bouquets = BouquetsReader().getBouquetsList(self.path)
        if "tv" not in old_bouquets:
            old_bouquets["tv"] = []
        if "radio" not in old_bouquets:
            old_bouquets["radio"] = []
        currentBouquets = {}
        currentBouquets["tv"] = []
        currentBouquets["radio"] = []
        for bouquet in old_bouquets["tv"]:
            currentBouquets["tv"].append(bouquet["filename"])
        for bouquet in old_bouquets["radio"]:
            currentBouquets["radio"].append(bouquet["filename"])
        if "tv" not in self.bouquetsToKeep:
            self.bouquetsToKeep["tv"] = []
        if "radio" not in self.bouquetsToKeep:
            self.bouquetsToKeep["radio"] = []

        print >> log, "[ABM-Manager][save] Bouquets to hide:", self.bouquetsToHide
        print >> log, "[ABM-Manager][save] TV bouquets to keep:", self.bouquetsToKeep[
            "tv"]
        print >> log, "[ABM-Manager][save] Radio bouquets to keep:", self.bouquetsToKeep[
            "radio"]
        #print>>log, "[ABM-Manager][save] Generate main bouquet:", str(self.makemain)
        #print>>log, "[ABM-Manager][save] Generate sections bouquets:", str(self.makesections)
        #print>>log, "[ABM-Manager][save] Generate HD bouquet:", str(self.makehd)
        #print>>log, "[ABM-Manager][save] Generate FTA bouquet:", str(self.makefta)
        print >> log, "[ABM-Manager][save] Add provider prefix to bouqets:", str(
            self.addprefix)

        writer = BouquetsWriter()
        writer.writeLamedb(self.path, self.transponders)
        #providers = Providers().read()
        bouquetsToHide = []

        for provider_key in self.bouquetsOrder:
            if provider_key in providers:
                # FTA_only
                if config.autobouquetsmaker.level.value == "expert" and provider_key in config.autobouquetsmaker.FTA_only.value:
                    video_services_tmp = {}
                    for number in self.services[provider_key]["video"]:
                        if self.services[provider_key]["video"][number][
                                "free_ca"] == 0:
                            video_services_tmp[number] = self.services[
                                provider_key]["video"][number]
                    self.services[provider_key]["video"] = video_services_tmp

                # CustomLCN
                self.services[provider_key] = Tools().customLCN(
                    self.services[provider_key], provider_key,
                    self.providerConfigs[provider_key].getArea())

        for provider_key in self.bouquetsOrder:
            if provider_key in providers:
                bouquetsToHide = []
                if provider_key in self.bouquetsToHide:
                    # expand section keys in channels numbers
                    sections = sorted(
                        providers[provider_key]["sections"].keys())
                    for bouquetToHide in self.bouquetsToHide[provider_key]:
                        try:
                            #get closest section, just in case section numbers in the provider file have been updated
                            bouquetToHide = min(
                                sections, key=lambda x: abs(x - bouquetToHide))
                            index = sections.index(bouquetToHide)
                        except:
                            continue
                        if index < len(sections) - 1:
                            bouquetsToHide += range(bouquetToHide,
                                                    sections[index + 1])
                        else:
                            bouquetsToHide += range(bouquetToHide, 65535)

                prefix = ""
                if self.addprefix:
                    prefix = providers[provider_key]["name"]

                current_bouquet_key = self.providerConfigs[
                    provider_key].getArea()
                if current_bouquet_key in providers[provider_key][
                        "bouquets"] and providers[provider_key][
                            "protocol"] in ("sky", "freesat"):
                    current_bouquet = providers[provider_key]["bouquets"][
                        current_bouquet_key]["bouquet"]
                    current_region = providers[provider_key]["bouquets"][
                        current_bouquet_key]["region"]
                else:
                    current_bouquet = -1
                    current_region = -1

                # swap services between providers
                services, providers[provider_key]["sections"] = Tools(
                ).customMix(self.services, provider_key, providers,
                            self.providerConfigs[provider_key])

                writer.buildBouquets(
                    self.path, self.providerConfigs[provider_key], services,
                    providers[provider_key]["sections"], provider_key,
                    providers[provider_key]["swapchannels"], bouquetsToHide,
                    prefix)

        # add a custom favourites list
        Tools().favourites(self.path, self.services, providers,
                           self.providerConfigs, self.bouquetsOrder)

        writer.buildLastScannedBouquet(self.path, self.services)

        writer.buildBouquetsIndex(self.path, self.bouquetsOrder, providers,
                                  self.bouquetsToKeep, currentBouquets,
                                  self.bouquetsToHide, self.providerConfigs)

        print >> log, "[ABM-Manager][save] write bouquets, Done"
Пример #6
0
 def load(self):
     print >> log, "[ABM-Manager][load] Loading settings..."
     reader = BouquetsReader()
     self.transponders = reader.readLamedb(self.path)
     print >> log, "[ABM-Manager][load] Settings loaded"
Пример #7
0
	def load(self):
		print>>log, "[ABM-Manager][load] Loading settings..."
		reader = BouquetsReader()
		self.transponders = reader.readLamedb(self.path)
		print>>log, "[ABM-Manager][load] Settings loaded"
Пример #8
0
    def save(self):
        print >> log, "[Manager] Saving..."

        old_bouquets = BouquetsReader().getBouquetsList(self.path)
        if "tv" not in old_bouquets:
            old_bouquets["tv"] = []
        if "radio" not in old_bouquets:
            old_bouquets["radio"] = []
        currentBouquets = {}
        currentBouquets["tv"] = []
        currentBouquets["radio"] = []
        for bouquet in old_bouquets["tv"]:
            currentBouquets["tv"].append(bouquet["filename"])
        for bouquet in old_bouquets["radio"]:
            currentBouquets["radio"].append(bouquet["filename"])
        if "tv" not in self.bouquetsToKeep:
            self.bouquetsToKeep["tv"] = []
        if "radio" not in self.bouquetsToKeep:
            self.bouquetsToKeep["radio"] = []

        print >> log, "[Manager] Bouquets to hide:", self.bouquetsToHide
        print >> log, "[Manager] TV bouquets to keep:", self.bouquetsToKeep[
            "tv"]
        print >> log, "[Manager] Radio bouquets to keep:", self.bouquetsToKeep[
            "radio"]
        #print>>log, "[Manager] Generate main bouquet:", str(self.makemain)
        #print>>log, "[Manager] Generate sections bouquets:", str(self.makesections)
        #print>>log, "[Manager] Generate HD bouquet:", str(self.makehd)
        #print>>log, "[Manager] Generate FTA bouquet:", str(self.makefta)
        print >> log, "[Manager] Add provider prefix to bouqets:", str(
            self.addprefix)

        writer = BouquetsWriter()
        writer.writeLamedb(self.path, self.transponders)
        providers = Providers().read()
        bouquetsToHide = []
        for provider_key in self.bouquetsOrder:
            if provider_key in providers:
                bouquetsToHide = []
                if provider_key in self.bouquetsToHide:
                    # expand section keys in channels numbers
                    sections = sorted(
                        providers[provider_key]["sections"].keys())
                    for bouquetToHide in self.bouquetsToHide[provider_key]:
                        try:
                            #get closest section, just in case section numbers in the provider file have been updated
                            bouquetToHide = min(
                                sections, key=lambda x: abs(x - bouquetToHide))
                            index = sections.index(bouquetToHide)
                        except:
                            continue
                        if index < len(sections) - 1:
                            bouquetsToHide += range(bouquetToHide,
                                                    sections[index + 1])
                        else:
                            bouquetsToHide += range(bouquetToHide, 65535)

                prefix = ""
                if self.addprefix:
                    prefix = providers[provider_key]["name"]

                current_bouquet_key = self.providerConfigs[
                    provider_key].getArea()
                if current_bouquet_key in providers[provider_key][
                        "bouquets"] and providers[provider_key][
                            "protocol"] in ("sky", "freesat"):
                    current_bouquet = providers[provider_key]["bouquets"][
                        current_bouquet_key]["bouquet"]
                    current_region = providers[provider_key]["bouquets"][
                        current_bouquet_key]["region"]
                else:
                    current_bouquet = -1
                    current_region = -1

                preferred_order = []
                if (self.providerConfigs[provider_key].isMakeNormalMain()
                        or self.providerConfigs[provider_key].isMakeSections()
                    ) and self.providerConfigs[provider_key].isSwapChannels():
                    for swapchannels_set in providers[provider_key][
                            "swapchannels"]:
                        if len(preferred_order) == 0 and len(
                                swapchannels_set["filters"]) == 0:
                            preferred_order = swapchannels_set[
                                "preferred_order"]
                            continue

                        if len(swapchannels_set["filters"]) > 0:
                            for cfilter in swapchannels_set["filters"]:
                                if cfilter[0] == current_bouquet and cfilter[
                                        1] == current_region:
                                    preferred_order = swapchannels_set[
                                        "preferred_order"]
                                    break

                if current_bouquet_key.startswith('sd'):
                    channelsontop = providers[provider_key]["sdchannelsontop"],
                else:
                    channelsontop = providers[provider_key]["hdchannelsontop"],

                # swap services between providers
                services = Tools().customMix(self.services, provider_key)

                writer.buildBouquets(self.path,
                                     self.providerConfigs[provider_key],
                                     services,
                                     providers[provider_key]["sections"],
                                     provider_key, preferred_order,
                                     channelsontop, bouquetsToHide, prefix)

        # add a custom favourites list
        Tools().favourites(self.path, self.services, providers,
                           self.providerConfigs, self.bouquetsOrder)

        writer.buildBouquetsIndex(self.path, self.bouquetsOrder, providers,
                                  self.bouquetsToKeep, currentBouquets,
                                  self.bouquetsToHide, self.providerConfigs)

        print >> log, "[Manager] Done"