Coder Social home page Coder Social logo

cherry's Introduction

CherryKodi CHERRY Addons Repository

Wszystkie dodatki zawarte w naszych repozytoriach nie są naszą własnością a treści w nich zawarte są własnością stron z których są pobrane. Repozytoium CherryTv oraz Dobre zostały połączone w jedno i nastąpiła zmiana nazwy na PTW Collection

Zawartość repozytorium

Wtyczka Nazwa Wersja Aktualizacja
PolishTeam_Repo 0.1.3 2020-8-31
PTW COLLECTION 0.5 2020-8-31
Plugin Autocompletion 1.0.1.1 2020-8-31

cherry's People

Contributors

cherrykodi avatar xulek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cherry's Issues

Mozecie dodac ten serwis?

To tak, kilka dni temu podeslal mi kolega link do tego serwisu: https://cdahd.ml i mam pytanko czy mozecie go dodac do waszego repo linkow? Jesli tak bym byl wdzieczny i by mi to uproszczylo ogladanie filmow! Zrobilem skrypt ktory wyciaga te linki filmow wiec tylko dodajcie go gdzie trzeba: nie dzialal wiec usunalem

NAJNOWSZY LINK: http://zipfile.cf/m83Ri2Qe

cherry-dev

Witam. Jako (jeszcze) pełen zapału neofita mam propozycję wydzielenie repozytorium developerskiego.

@notoco wydzielił CIACH dla wtyczek (w tej chwili fanfilm), za co dziękuję. Tam też toczy się dyskusja, patrz CIACH CIACH.
Teraz myślę, już czas na wydzielenie cherry-dev, w którym byłyby źródła do tych dodatków, które są przez Was (mam nadzieję wkrótce – przez nas) rozwijane. Na razie interesuje mnie sam resolver, którego chciałem użyć w FilmyOnline (mrknow) zamiast tamtejszego wbudowanego. po co dublować pracę. A, że pewnie czasem będę miał propozycję jakiś zmian (np. youtube-dl jako fallback) to wygodniej pracować na źródłach.

EXITE24.PL

Nie mogę się zalogować do wtyczki, a w folderach pusto.

Pytanie do notoco

Mam problem, a mianowicie czy to źródło "verystream" potrzebuje wtyczki do działania. Nigdzie i nigdy mi nie zadziałała, coraz więcej się jej pojawia. Drugie pytanie by nie tworzyć nowych wątków czy jest możliwość napisania bezpośrednio do któregoś z użytkowników Githuba np. do Ciebie? No i W kilku sprawach mi poradziłeś i wytłumaczyłeś co i jak więc z nadzieją piszę. Pozdrwiam

Resolve url 6.3.12 - issue

Since latest update of resolve URL 6.3.12, I am not able to open addons and it is giving error message with X add on error at right bottom side of screen

If I change back the version to 6.3.8, it becomes normal and can then use the addons

Please fix Resolve URL 6.3.12 thatwas updated few hours ago

plugin.video.anime nie działa

Hej, plugin wysiadł. Poniżej szybki fix. Jeśli możecie, wrzućcie to do repo.

# -*- coding: UTF-8 -*-
import re
import urllib
import xbmc
import xbmcplugin

import requests
import resolveurl
import sys

from ptw.debug import log_exception
from ptw.libraries import addon_utils as addon
from ptw.libraries import source_utils, client

_pluginName = sys.argv[0].replace('plugin://', '')
_basePath = "special://home/addons/" + _pluginName + "resources/media/"
_resourcesPath = xbmc.translatePath(_basePath)
_default_background = _resourcesPath + "fanart.jpg"
_base_link = "http://www.animezone.pl/"

s = requests.session()


# =########################################################################################################=#
#                                                   MENU                                                   #
# =########################################################################################################=#

def CATEGORIES():
    addon.addDir("Szukaj anime", '', mode=1)
    addon.addDir("Alfabetycznie", '', mode=10)
    addon.addDir("Gatunki", '', mode=20)
    addon.addDir("Sezony", '', mode=30)
    addon.addDir("Rankingi", '', mode=40)


############################################################################################################
# =########################################################################################################=#
#                                                 FUNCTIONS                                                #
# =########################################################################################################=#

def Wyszukiwanie():
    keyb = xbmc.Keyboard('', "Wyszukiwarka anime")
    keyb.doModal()
    if keyb.isConfirmed() and len(keyb.getText().strip()) > 0:
        search = keyb.getText()

        url = "http://www.animezone.pl/szukaj?q=" + search
        r = client.request(url)

        result2 = client.parseDOM(r, 'div', attrs={'class': 'panel-body categories-newest'})  ## na obrazy
        obrazy = client.parseDOM(result2, 'img', ret='src')
        result = client.parseDOM(r, 'div', attrs={'class': 'description pull-right'})  ## na linki i opisy
        linki = client.parseDOM(result, 'a', ret='href')
        nazwy = client.parseDOM(result, 'a')
        opisy = client.parseDOM(result, 'p')

        if len(linki) == 0:
            addon.addDir("Zbyt dużo lub brak wyników wyszukiwania :(", '')
            addon.addDir("Spróbuj doprecyzować zapytanie!", '')
        nazwy = client.parseDOM(result, 'a')

        counter = 0
        for link in linki:
            linki[counter] = 'http://animezone.pl' + linki[counter]
            obrazy[counter] = 'http://animezone.pl' + obrazy[counter]
            opisy[counter] = opisy[counter].replace("<mark>", "").replace("</mark>", "")
            addon.addDir(str(nazwy[counter].encode('utf-8')).replace("<mark>", "").replace("</mark>", ""), linki[counter], mode=4,
                         thumb=obrazy[counter], plot=opisy[counter])
            counter += 1
    else:
        CATEGORIES()


def Alfabetycznie():
    url = 'http://animezone.pl'

    r = client.request('http://animezone.pl/anime/lista')

    result = client.parseDOM(r, 'div', attrs={'class': 'btn-group btn-group-xs'})
    linki_litery = client.parseDOM(result, 'a', ret='href')
    litery = client.parseDOM(result, 'a')
    counter = 0
    for link in linki_litery:
        link = url + link
        addon.addDir(str(litery[counter].encode('utf-8')), link, mode=3)
        counter += 1


def ListowanieAnime():
    url = params['url']

    r = client.request(url)

    result2 = client.parseDOM(r, 'div', attrs={'class': 'panel-body categories-newest'})  ## na obrazy
    obrazy = client.parseDOM(result2, 'img', ret='src')
    result = client.parseDOM(r, 'div', attrs={'class': 'description pull-right'})  ## na linki i opisy
    linki = client.parseDOM(result, 'a', ret='href')
    nazwy = client.parseDOM(result, 'a')
    opisy = client.parseDOM(result, 'p')

    counter = 0
    for link in linki:
        linki[counter] = 'http://animezone.pl' + linki[counter]
        obrazy[counter] = 'http://animezone.pl' + obrazy[counter]
        addon.addDir(str(nazwy[counter].encode('utf-8')).replace("<mark>", "").replace("</mark>", ""), linki[counter], mode=4,
                     thumb=obrazy[counter], plot=opisy[counter])
        counter += 1
    try:
        strony = client.parseDOM(r, 'ul', attrs={'class': 'pagination'})
        strony = client.parseDOM(strony, 'li')
        link_nastepna = client.parseDOM(strony, 'a', ret='href')[-1]
        # nastepna strona
        for strona in strony:
            strona = client.parseDOM(strona, 'a')
            if len(strona) > 0:
                strona = str(strona[0].encode('utf-8'))
                if strona == "&raquo;":
                    addon.addDir("Nastpna strona..", 'http://animezone.pl' + link_nastepna, mode=3)
    except:
        log_exception()
        pass


def ListowaniOdcinkow():
    url = params['url']

    try:
        iconimage = params['iconimage']
    except:
        iconimage = ''

    r = client.request(url)

    linki = []
    nazwy = []

    result = client.parseDOM(r, 'table', attrs={'class': 'table table-bordered table-striped table-hover episodes'})
    test = client.parseDOM(result, 'tr')
    test = [x for x in test if str(x.encode('utf-8')).startswith("<td class=\"text")]
    for item in test:
        link = client.parseDOM(item, 'a', ret='href')
        nazwa = client.parseDOM(item, 'td', attrs={'class': 'episode-title'})
        odcinek = client.parseDOM(item, 'strong')[0]
        if nazwa and link:
            linki.append(link[0])
            nazwy.append("Odcinek " + odcinek + " " + nazwa[0])

    counter = 0
    for link in linki:
        linki[counter] = 'http://animezone.pl' + str(link.encode('utf-8')).replace("..", "")
        addon.addDir(str(nazwy[counter].encode('utf-8')), linki[counter], mode=5, icon=iconimage)
        counter += 1


def WysiwetlanieLinkow():
    global url
    global nazwa

    url = params['url']
    r = s.get(url).content

    nazwa = params['name']
    results = client.parseDOM(r, 'table', attrs={'class': 'table table-bordered table-striped table-hover episode'})
    results = client.parseDOM(results, 'td', attrs={'class': 'text-center'})
    counter = range(-1, len(results) - 1)
    for zipped in zip(counter, results):
        results.append(work(zipped))
    results = [x for x in results if type(x) == tuple]
    for result in results:
        addon.addLink(result[0], result[1], mode=6)


def work(zipped):
    counter = zipped[0]
    result = zipped[1]
    counter += 1

    try:
        r = re.findall("""data-.*="([0-9].*)">""", result)[0]
    except:
        return 0

    headers = {
        'Accept': '*/*',
        'Accept-Language': 'pl,en-US;q=0.7,en;q=0.3',
        'Cache-Control': 'max-age=0',
        'Connection': 'keep-alive',
        'Host': 'www.animezone.pl',
        'Referer': str(url).replace("http://", "http://www."),
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0',
    }

    verify = s.get('http://animezone.pl/images/statistics.gif', headers=headers)

    hostDict = resolveurl.relevant_resolvers(order_matters=True)
    hostDict = [i.domains for i in hostDict if not '*' in i.domains]
    hostDict = [i.lower() for i in reduce(lambda x, y: x + y, hostDict)]
    hostDict = [x for y, x in enumerate(hostDict) if x not in hostDict[:y]]

    headers = {
        'Host': 'www.animezone.pl',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0',
        'Accept': '*/*',
        'Accept-Language': 'pl,en-US;q=0.7,en;q=0.3',
        'Accept-Encoding': 'gzip, deflate, br',
        'Referer': str(url).replace("http://", "http://www."),
        'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
        'X-Requested-With': 'XMLHttpRequest',
        'Connection': 'keep-alive',
        'Pragma': 'no-cache',
        'Cache-Control': 'no-cache',
    }

    data = {'data': r}
    response = s.post(str(url).replace("http://", "https://www."), headers=headers, data=data).content
    link = client.parseDOM(response, 'a', ret='href')

    try:
        if link == '':
            return 0
        if str(link[0]).startswith('//'):
            link[0] = str(link[0]).replace("//", "http://")
        valid, host = source_utils.is_host_valid(str(link[0]), hostDict)
        if valid == False:
            return 0
        else:
            nazwa2 = "[COLOR green]" + host + ": [/COLOR]" + nazwa
            return ("[B]" + str(nazwa2) + "[/B]", str(link[0]))
    except:
        log_exception()
        return 0


def Rankingi(counter):
    url = params['url']
    r = client.request(url)

    result = client.parseDOM(r, 'table', attrs={'class': 'table table-bordered table-striped table-hover ranking'})
    linki = client.parseDOM(result, 'a', ret='href')
    nazwy = client.parseDOM(result, 'a')
    n = 1
    try:
        for link in linki:
            linki[counter] = 'http://animezone.pl' + linki[counter]
            addon.addDir(str(n) + ". " + str(nazwy[counter]).replace("<mark>", "").replace("</mark>", ""),
                         linki[counter], mode=4)
            counter += 1
            n += 1
    except:
        log_exception()
        pass


def Gatunki(link, numer):
    try:
        url = 'http://www.animezone.pl/gatunki'

        r = client.request(url)

        result = client.parseDOM(r, 'form', attrs={'class': 'species'})
        result = client.parseDOM(result, 'div', attrs={'class': 'panel-body'})
        value = client.parseDOM(result[numer], 'input', ret='value')
        nazwa = client.parseDOM(result[numer], 'input')
        counter = 0
        for n in nazwa:
            index = str(n).find('  ')
            n = n[:index]
            nazwa[counter] = n
            addon.addDir(str(nazwa[counter].encode('utf-8')), link + str(value[counter].encode('utf-8')), mode=3)
            counter += 1
    except:
        log_exception()


def OdpalanieLinku():
    url = params['url']
    addon.PlayMedia(url)


############################################################################################################
# =########################################################################################################=#
#                                               GET PARAMS                                                 #
# =########################################################################################################=#

params = addon.get_params()
url = params.get('url')
name = params.get('name')
try:
    mode = int(params.get('mode'))
except:
    mode = None
iconimage = params.get('iconimage')

###############################################################################################################
# =###########################################################################################################=#
#                                                   MODES                                                     #
# =###########################################################################################################=#

if mode == None:
    CATEGORIES()

elif mode == 1:
    Wyszukiwanie()

elif mode == 3:
    ListowanieAnime()

elif mode == 4:
    ListowaniOdcinkow()

elif mode == 5:
    WysiwetlanieLinkow()

elif mode == 6:
    OdpalanieLinku()

elif mode == 10:
    Alfabetycznie()

elif mode == 20:
    addon.addDir("Typ widowni", '', mode=21)
    addon.addDir("Gatunek", '', mode=22)
    addon.addDir("Tematyka", '', mode=23)
    addon.addDir("Rok", '', mode=24)

elif mode == 21:
    Gatunki('http://www.animezone.pl/gatunki?type=', 0)

elif mode == 22:
    Gatunki('http://www.animezone.pl/gatunki?species=', 1)

elif mode == 23:
    Gatunki('http://www.animezone.pl/gatunki?topic=', 2)

elif mode == 24:
    Gatunki('http://www.animezone.pl/gatunki?years=', 3)

elif mode == 30:
    counter = 1982
    while counter <= 2019:
        addon.addDir("Sezon Wiosna " + str(counter), 'http://www.animezone.pl/anime/sezony/' + str(counter) + '/wiosna',
                     mode=3)
        addon.addDir("Sezon Lato " + str(counter), 'http://www.animezone.pl/anime/sezony/' + str(counter) + '/lato',
                     mode=3)
        addon.addDir("Sezon Jesień " + str(counter), 'http://www.animezone.pl/anime/sezony/' + str(counter) + '/jesien',
                     mode=3)
        addon.addDir("Sezon Zima " + str(counter), 'http://www.animezone.pl/anime/sezony/' + str(counter) + '/zima',
                     mode=3)
        counter += 1

elif mode == 40:
    addon.addDir("Ranking ocen", 'http://www.animezone.pl/anime/ranking/ocen', mode=41)
    addon.addDir("Ranking wyświetleń", 'http://www.animezone.pl/anime/ranking/wyswietlen', mode=42)
    addon.addDir("Ranking fanów", 'http://www.animezone.pl/anime/ranking/fanow', mode=42)

elif mode == 41:
    Rankingi(2)

elif mode == 42:
    Rankingi(1)

###################################################################################

xbmcplugin.setContent(int(sys.argv[1]), 'movies')
xbmcplugin.endOfDirectory(int(sys.argv[1]))

anime

Siemka w dodatku Anime jest całkowicie pusto :(

sportlive365 sport devil

i wielka proźba do użytkowników jakąś wtyczke do oglądania meczy sport 365 od cherry działa ale strasznie zacinaja się linki wszystkie sport devil zalezy jaka wersja tez tnie joker to masakra może macie jakieś alternatywy lub podpowiedź może muszę coś poustawiac w kodi lub we wtyczkach by smigało dobrze sorry ze tak problemuje ale tylko od was moge uzyskac jakieś informacje kodi w pigułce mi nie odpowiada

Co się dziej? Nic nie działa ;(

Witajcie co się stało jest ta aktualizacja ale nie mam pojęcia o co w tym chodzi, czasem coś się uda włączyć ale to 1 na 20 prób

Python object files

script.module.urlresolver-5.0.14.zip zawiera pliki *.pyo, które wydają się zbędne.
Python i tak je wytworzy raz przy pierwszym uruchomieniu w dodatku dokładnie w wersji sobie pasującej.

Proponuję usunąć w kolejnym buildzie. Np. pakować z opcją zip -r xxx.zip xxx -x '*.pyo'

Aeon cherry tv

Pomoże ktoś. Chciałbym dodać w ramach gadget przyciski power off i reboot.
Udało mi się to zrobić, z tym że ikona jest standardowa dla każdego polecenia. Wygląda to jak na tym zdjęciu:
Screenshot_20190726-082232
Oraz chciałbym usunąć te podpisy gadgetów ten napis między paskiem wyboru a gadgetem. Próbowałem nic nie wpisywać w nazwę gadgetu, lecz po prostu sam wybiera się standardowy

Dodajcie script.module.request do resolverurl

Dodajcie do script.module.resolveurl jako zależność script.module.request
Wasza modyfikacja nadpisuje oryginalny resolver i nie chcą z nią działać wtyczki podpisa i różne inne. Poprawka IMO winna być w waszym repo zrobiona, bo to wy modyfikujecie i łatwiej to załatwić jednym wpisem.
https://github.com/notoco/ffl/tree/master/zips/script.module.resolveurl - tu poprawiona wersja u mnie, i poprawiony addons.xml
<addon id="script.module.resolveurl" name="ResolveURL" version="6.0.7a" provider-name="jsergio"> <requires> <import addon="xbmc.python" version="2.1.0" /> <import addon="plugin.video.youtube" optional="true" /> <import addon="script.module.python.twitch" optional="true" /> <import addon="script.module.cryptopy" version="1.2.6" optional="true" /> <import addon="plugin.video.gdrive" optional="true" /> <import addon="script.module.requests" /> </requires> <extension point="xbmc.python.pluginsource" library="main.py"> <provides>video</provides> </extension> <extension point="xbmc.python.module" library="lib" /> <extension point="xbmc.python.pluginsource" library="lib/default.py" /> <extension point="xbmc.addon.metadata"> <platform>all</platform> <summary lang="en">Resolve common video host URL's to be playable in XBMC/Kodi.</summary> <summary lang="es">Resolver enlaces a videos de sitios populares para poder reproducirlos en XBMC/Kodi.</summary> <summary lang="hr">Prilagodi najčešće URL-ove video izvora kako bi radili u XBMC/Kodiju.</summary> <description lang="en">Resolve common video host URL's to be playable in XBMC/Kodi, simplify addon development of video plugins requiring multi video hosts.</description> <description lang="hr">Prilagodi najčešće URL-ove video izvora kako bi radili u XBMC/Kodiju, pojednostavnjuje razvoj priključaka za video dodatke koji zahtjevaju višestruke video izvore.</description> </extension> </addon>

FanFilm

Wtyczka pomija wszystkie źródła "szukajki", oprócz "vshare". Przykład na serialu "Ślepnąc od świateł" - do czwartego epizodu można oglądać bo jest źródło "vshare", następne epizody już nie działają mimo znalezionych źródeł z "szukajki". Czy dało by się rozwiązać ten problem?

Kreskowki

Cześć.
Wtyczka kreskowki nie działa.
Jest szansa na naprawę?

Ekstraklasa

Wtyczka nie pozwala na wybór jakości źródła. Pojawia się okno wyboru, ale każda opcja powoduje wyświetlenie materiału w maksymalnej jakości.

czy wtyczka FanFilm uzywa torrenty ?

Mam ogolne pytanie - czy wtyczka FanFilm uzywa torrenty czy tylko zrodla dostepne z http?

Chetnie bym jej uzywal ale nie chce w zaden sposob udostepniac filmow.
Bo nie jest to do konca legalne w PL

Exodus nie uzywal torrentów ani nie wspoldzielil fimow - pytanie jak jest z Wasza wtyczka ?

FanFilm

Witam szanowne grono. Mam problem z odtworzeniem jakiegokolwiek odcinka "Kuchenne Rewolucje" FanFilm odpowiada brak dostępnych źródeł. Czy jest możliwość naprawy, korzystam z Państwa ResolveURL w wersji 6.3.4. Pozdrawiam

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.