die nerds von .tv haben kein interesse an meiner request.
ok, dann übe ich noch etwas geduld.
Beiträge von harryberlin
-
-
hmm, wo sind die extremen nerds?
-
Grüße
Bin hier nach der Anleitung vorgegangen. http://kodi.wiki/view/HOW-TO:Compile_Kodi_for_Windows
von github habe ich die daten selbst geladen, weil ich eine datei angepasst habe. (siehe Request http://forum.kodi.tv/showthread.php?tid=299109)
dann die ganze programme installiert
die dll für libdvd musste ich wo anders her holen
dann laufen auch die batch dateien durch
also
1. DownloadBuildDeps.bat
2. DownloadMingwBuildEnv.bat
3. make-mingwlibs.batJedoch die BuildSetup.bat endet dann mit einem Fehler: SIEHE ANHANG
Habt ihr Kodi schon mal fehlerfrei selbst kompiliert?
-
Moin Moin
Was mich schon länger nervt, wenn ich ein Addon aktualisiere (also auch die Version erhöhe) und in die Repo einstelle, zeigt mir Kodi zwar an, dass eine Aktualisierung verfügbar ist, aber es wird mir die alte Version des Addons angezeigt.
Wenn ich das Update trotzdem starte, dann hat das addon natürlich die richtige neue Version.Ich nutze das übliche Skript generate_repo.py (nur leicht umgeschrieben für ersetzen vorhandener daten, icon und changelog dazu).
Wisst ihr einen Rat? Oder muss ich bei jeder Aktualisierung auch die Repo-Version erhöhen?
Python
Alles anzeigen""" repository files and addons.xml generator """ """ Modified by Rodrigo@XMBCHUB to zip plugins/repositories to a "zip" folder """ """ Modified by BartOtten: create a repository addon, skip folders without addon.xml, user config file """ """ Modified by harryberlin: overwrite existing files, copy icon and changlog to repo, strip url from output path """ """ This file is "as is", without any warranty whatsoever. Use as own risk """ import os import md5 import zipfile import shutil from xml.dom import minidom import glob import datetime from ConfigParser import SafeConfigParser class Generator: """ Generates a new addons.xml file from each addons addon.xml file and a new addons.xml.md5 hash file. Must be run from a subdirectory (eg. _tools) of the checked-out repo. Only handles single depth folder structure. """ def __init__(self): """ Load the configuration """ self.config = SafeConfigParser() self.config.read('config.ini') self.tools_path = os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)))) self.backup_zip = False if self.config.get('settings', 'backup_zip').upper() == 'FALSE' else True self.ignore_outputpath_in_url = True if self.config.get('settings', 'ignore_outputpath_in_url').upper() == 'TRUE' else False self.output_path = "_" + self.config.get('locations', 'output_path') # travel path one up os.chdir(os.path.abspath(os.path.join(self.tools_path, os.pardir))) # generate files self._pre_run() self._generate_repo_files() self._generate_addons_file() self._generate_md5_file() self._generate_zip_files() # notify user print "Finished updating addons xml, md5 files and zipping addons" def _pre_run(self): # create output path if it does not exists if not os.path.exists(self.output_path): os.makedirs(self.output_path) def _generate_repo_files(self): addonid = self.config.get('addon', 'id') name = self.config.get('addon', 'name') version = self.config.get('addon', 'version') author = self.config.get('addon', 'author') summary = self.config.get('addon', 'summary') description = self.config.get('addon', 'description') url = self.config.get('locations', 'url') if os.path.isfile(addonid + os.path.sep + "addon.xml"): return print "Create repository addon" with open(self.tools_path + os.path.sep + "template.xml", "r") as template: template_xml = template.read() repo_xml = template_xml.format( addonid=addonid, name=name, version=version, author=author, summary=summary, description=description, url=url, output_path='' if self.ignore_outputpath_in_url else self.output_path) # save file if not os.path.exists(addonid): os.makedirs(addonid) self._save_file(repo_xml.encode("utf-8"), file=addonid + os.path.sep + "addon.xml") def _generate_zip_files(self): addons = os.listdir(".") # loop thru and add each addons addon.xml file for addon in addons: # create path _path = os.path.join(addon, "addon.xml") _changelog = os.path.join(addon, "changelog.txt") _iconpng = os.path.join(addon, "icon.png") _iconjpg = os.path.join(addon, "icon.jpg") _fanart = os.path.join(addon, "fanart.jpg") # skip path if it has no addon.xml if not os.path.isfile(_path): continue try: # skip any file or .git folder if (not os.path.isdir(addon) or addon == ".git" or addon == self.output_path or addon == self.tools_path): continue # create path _path = os.path.join(addon, "addon.xml") # split lines for stripping document = minidom.parse(_path) for parent in document.getElementsByTagName("addon"): version = parent.getAttribute("version") addonid = parent.getAttribute("id") self._generate_zip_file(addon, version, addonid) if os.path.isfile(_path): shutil.copy(_path, self.output_path + addonid + os.path.sep + "addon.xml") if os.path.isfile(_changelog): shutil.copy(_changelog, self.output_path + addonid + os.path.sep + "changelog-%s.txt" % version) if os.path.isfile(_iconpng): shutil.copy(_iconpng, self.output_path + addonid + os.path.sep + "icon.png") elif os.path.isfile(_iconjpg): shutil.copy(_iconjpg, self.output_path + addonid + os.path.sep + "icon.jpg") if os.path.isfile(_fanart): shutil.copy(_fanart, self.output_path + addonid + os.path.sep + "fanart.jpg") except Exception, e: print e def _generate_zip_file(self, path, version, addonid): print "Generate zip file for " + addonid + " " + version filename = path + "-" + version + ".zip" try: zip = zipfile.ZipFile(filename, 'w') for root, dirs, files in os.walk(path + os.path.sep): for file in files: zip.write(os.path.join(root, file)) zip.close() if not os.path.exists(self.output_path + addonid): os.makedirs(self.output_path + addonid) if self.backup_zip and os.path.isfile(self.output_path + addonid + os.path.sep + filename): print 'Create Backup for existing %s zip-File' % addonid os.rename(self.output_path + addonid + os.path.sep + filename, self.output_path + addonid + os.path.sep + filename + "." + datetime.datetime.now().strftime("%Y%m%d%H%M%S")) shutil.move(filename, self.output_path + addonid + os.path.sep + filename) except Exception, e: print e def _generate_addons_file(self): # addon list addons = os.listdir(".") # final addons text addons_xml = u"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<addons>\n" # loop thru and add each addons addon.xml file for addon in addons: # create path _path = os.path.join(addon, "addon.xml") # skip path if it has no addon.xml if not os.path.isfile(_path): continue try: # split lines for stripping xml_lines = open(_path, "r").read().splitlines() # new addon addon_xml = "" # loop thru cleaning each line for line in xml_lines: # skip encoding format line if (line.find("<?xml") >= 0): continue # add line addon_xml += unicode(line.rstrip() + "\n", "utf-8") # we succeeded so add to our final addons.xml text addons_xml += addon_xml.rstrip() + "\n\n" except Exception, e: # missing or poorly formatted addon.xml print "Excluding %s for %s" % (_path, e,) # clean and add closing tag addons_xml = addons_xml.strip() + u"\n</addons>\n" # save file self._save_file(addons_xml.encode("utf-8"), file=self.output_path + "addons.xml") def _generate_md5_file(self): try: # create a new md5 hash m = md5.new(open(self.output_path + "addons.xml").read()).hexdigest() # save file self._save_file(m, file=self.output_path + "addons.xml.md5") except Exception, e: # oops print "An error occurred creating addons.xml.md5 file!\n%s" % (e,) def _save_file(self, data, file): try: # write data to the file open(file, "w").write(data) except Exception, e: # oops print "An error occurred saving %s file!\n%s" % (file, e,) if (__name__ == "__main__"): # start Generator()
-
@BJ1
wo findet man den TVH Manager? ein link wäre cool.
aus deiner sig geht nix hervor.mit bissl aufwand, dann doch gefunden: https://github.com/b-jesch/SaXBMC…ice.tvh.manager
-
nee nee passt schon, will dir nix wegnehmen.
-
ich dachte nur, dass es anderen usern die config erleichtern würde.
man könnte mit einen klick, alle settings im simple client setzen.
aber ok, wollte nur meine hilfe anbieten und nicht deine arbeit zu nichte machen. -
statt rumzulatschen, hättest lieber mal die lösung gepostet.
-
doch, man kann die settings von addons mit anderen addons oder python scripten setzen.
würde das ganze etwas komfortabler machen. z.b. wenn er die m3u auf github ablegt und man das update mit dem addon machen kann.
oder man integriert die senderlogos in das addon. -
dann kann man doch bestimmt ein addon draus schustern, dass die settings im simpleclient gesetzt werden.
wenn ich mehr zeit hab, bastel ich mal was.läuft das addon denn nicht mehr?
http://forum.kodi.tv/showthread.php?tid=183456 -
ts muss man doch mit pvastrumento bereinigen.
-
im grunde nicht falsch formuliert.
Wie kann ich das machen? Ich bin ratlosschon im zweiten post wurde der thread in die falsche richtung gelenkt.
der vorschlag mit der RTC wurde dann eher belächelt, obwohl es eine gute lösung wäre.
Sofern die I-netverbindung nicht das Problem ist, vllt. mal OSMC oder LE testen. OE ist ja das auslaufmodell.
-
wieso wird im titel auf "ohne internet" verwiesen, wenn dann lösungen diskutiert werden, die internet erfordern?
-
-
@skybird1980 oder @harryberlin kann einer von euch beiden bitte mal den Link zu Link entfernt- die Moderation
rausnehmen. Das ist ja nun mal nicht so ganz erwünscht, da es ein banned repo ist. Von daher wäre ich auch mit addons daraus eher vorsichtig.Seitens Kodi gibt es da nichts offizielles.
nur weil es mit
banned addon entfernt- die Moderation
probleme gibt, muss nicht gleich jedes non kodi-repo addon als illegal eingestuft werden....
ich finde easy as sehr nützlich -
es gibt auch ein gutes addon:
bemühe mal google nach "easy [definition='2','1']advancedsettings[/definition]" (link ist hier nicht erwünscht) -
addons könnte man ggf. in den addons pfad kopieren und kodi neustarten. löschen ist umstandlicher, weil die settings auch gelöscht werden müssten.
-
@BJ1
wird value denn tatsächlich eingesetzt, so wie es da steht? -
du hast es falsch verstanden.
1. ich habe die micro-sd heraus genommen.
2. am pc die neuen files drauf kopiert
3. wieder in der pi gesteckt
4. nix geändert, kein usb zum booten, oder sonst was. nur bluetooth, mouse + keyboard und eine serial usb interface dran.
5. das bild blieb einfach dunkel, obwohl vor dem update alles lief.hatte mir durch das update auch etwas performanceverbesserung fürs hochfahren erhofft.
-
pi3
habs einfach wieder rückgängig gemacht.