Anime İzleme Programı Python[Turkanime]

NightBreather

Katılımcı Üye
21 Ağu 2016
591
0
Turkanime üzerinden herhangi bir animeyi pcden izleyebilirsiniz. Win10 da test edildi. Şuan sadece VK kaynağını desktekliyor kendim için yaptım kullanmak ve geliştimek isteyen arkadaşlar için paylaşıyorum kodları pekde istediğim kadar düzenli olmadı açıkcası ama olduğu kadar artık :puah:puah

Komut satırında bir sıkıntısı yok isteyen guide yazsın

Kod:
# -*- coding: cp1254 -*-
from bs4 import BeautifulSoup
import urllib.request
import re
import os
os.system("color a")
os.system("chcp 65001")
os.system("cls")
deger="http://www.turkanime.tv/"

def VeriCek(url):
    site=urllib.request.urlopen(url)
    content=site.read()
    soup=BeautifulSoup(content,'html.parser')
    return soup

def AnimeİsmiCek(soup):
    Animeler=[]
    for link in soup.find_all('a'):
        if str(link.get('class')).find("btn")>0:
            Animeler.append(str(link.get('title')))
    return Animeler


#Animenin Bölümlerinin Hepsinin olduğu sayfanın linkini çeker
def AnimeCek(soup):
    Animeler={}
    for link in soup.find_all('a'):
        if str(link.get('class')).find("btn")>0:
            Animeler[str(link.get('title'))]=str(link.get('href'))
    return Animeler

def AnimeİsimCek(soup):
    Animeler=[]
    for link in soup.find_all('a'):
        if str(link.get('class')).find("btn")>0:
            Animeler.append(str(link.get('title')))
            
    return Animeler

#Mevcut Sayfada diğer Fansubların olup olmadğına bakar
def AlternatifVarmı(soup):
    Alternatifler={}
    deger=0
    for i in Soup.find_all('p'):
        if i.text=="Bu bölüm birden fazla grup veya çevirmen tarafından hazırlanmıştır.":
            deger=deger+1
    if deger>0:
        
        for link in Soup.find_all('a',attrs={'class':'btn btn-info'}):
            Link=re.findall("video/.*',",link.get('onclick'))[0][:-2]
            Alternatifler[str(link.text[1:])]=Link
        return Alternatifler
    
    else:
        return False
    
#Bölümlerin Linklerini Çeker
    
def BölümCek(Soup):
    Bölümler=[]
    for i in Soup.find_all('a',attrs={'name':'bolumler'}):
        adres=i.get("href")
    Soup=VeriCek(deger+adres)
    for link in Soup.find_all('a',attrs={'class':'btn'}):
        if str(link.get('title')).find("None")<0:
            Bölümler.append({str(link.get('title')):link.get('href')})
    return Bölümler

#Yukarıdan Aşağı Bölümleri Sıralamak için Kulllanılır.
def BölümListele(Bölümler):
    sayı=len(Bölümler)
    say=0
    while sayı!=say:
        for i in Bölümler[say].keys():
            print(i)
            say=say+1
    
        
def VideoKaynaklarınıCek(Soup):
    kaynaklar={}
    for link in Soup.find_all('a',attrs={'href':'javascript:****(0);','class':'btn','style':'margin-right:5px; margin-bottom:5px; float:left;'}):
        Link=re.findall("video/.*',",link.get('onclick'))[0][:-2]
        kaynaklar[str(link.text[1:])]=str(Link)
    return kaynaklar

def VKDök(VK):
    Cözünürlükler={}
    
    soup=VeriCek(VK)
    
    for link in soup.find_all('iframe',attrs={'allowfullscreen':''}):
        if (link.get('src')).find('vk')>0:
            url=link.get('src')
            
    soup=VeriCek(url)
    
    for link in soup.find_all('iframe',attrs={'allowfullscreen':''}):
        if (link.get('src')).find('vk')>0:
            url=link.get('src')
            
    url=re.findall('http://vk.com.*',url)
    
    Content=VeriCek(url[0])
    
    for i in Content.find_all("source",attrs={'type':'video/mp4'}):
        if i==[]:
            return print("Link Ölmüş başka bir kaynak deneyin.")
        else:
            cöz=re.findall(".[7432][2864]0.",str(i))
            Cözünürlükler[str(cöz[-1][1:-1])]=i.get("src")
        
    return Cözünürlükler

print("""
ANİME Link Catcher Versin 1.0 BETA
Author:Kerem Saygın
Website:www.keremsaygin.tk
""")





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

Animeler=AnimeİsmiCek(VeriCek(deger+"/icerik/tamliste"))

cevap=input("Anime listesine bakmak istermisiniz(E/H):")

if cevap=="E" or cevap=="e":
    for i in Animeler:
        print(i)
else:
    print("Listelenmedi.")  

#########################################################
    
Animeler=AnimeCek(VeriCek(deger+"/icerik/tamliste"))

Animeİsmi=input("istediğiniz animenin Tam ismini Yazın:")

if Animeİsmi in Animeler:
    print(Animeİsmi," isimli anime veritabanında bulunmaktadır.")
    Soup=VeriCek(deger+Animeler[Animeİsmi])
    print("Anime Hakkındaki bilgilere erişiliyor.")
    Bölümler=BölümCek(Soup)
    BölümListele(Bölümler)
    print("************************************/")
    BölümNo=int(input('İzlemek istediğiniz bölüm Nosu:'))
    if BölümNo>len(Bölümler):
        print("İstediğiniz Bölüm Bulunmamakta.")
    else:
        for BölümAdres in Bölümler[BölümNo-1].values():
            Soup=VeriCek(deger+BölümAdres)
        if AlternatifVarmı(Soup):
            Fansublar=AlternatifVarmı(Soup)
            print("İzlemek istediğiniz Seriye ait fansublar aşağıda sıralanmıştır.")
            for i in Fansublar:
                print(i)
            print("************************************/")
            Secim=input("istediğiniz Fansubu yazın:")
            if Secim in Fansublar:
                Soup=VeriCek(deger+Fansublar[Secim])
                kaynaklar=VideoKaynaklarınıCek(Soup)
                print("Video Sağlayacıları Çekiliyor.")
                for i in kaynaklar:
                    print(i)
                print("Lütfen yukarıdaki Kaynaklardan birini seçin.")
                Secim=input("İstediğiniz Video kaynağının tam ismini yazınız:")
                if Secim in kaynaklar:
                    if Secim=="VK":
                        print("Vk Kaynağı tespit edildi.")
                        dönen=VKDök(deger+kaynaklar[Secim])
                        for i in dönen:
                            print(i)
                        cöz=input("İstediğiniz Çözünürlük değerini yazınız:")
                        if cöz in dönen:
                            os.system("start wmplayer "+dönen[cöz])
                        else:
                            print("Seçtiğiniz çözünürlük tespit edilemedi.")
                    else:
                        print("Seçtiğiniz kaynak Henüz Yapılandırılmadı.")
                        
                else:
                    
                    print("Yazdığınız Kaynak Bulunamadı.")
                
            else:
                print("Belirtilen Fansub Bulunamadı.")
            
        else:
            
            Soup=VeriCek(deger+BölümAdres)
            kaynaklar=VideoKaynaklarınıCek(Soup)
            print("Video Sağlayacıları Çekiliyor.")
            for i in kaynaklar:
                print(i)
            print("Lütfen yukarıdaki Kaynaklardan birini seçin.")
            Secim=input("İstediğiniz Video kaynağının tam ismini yazınız:")
            if Secim in kaynaklar:
                if Secim=="VK":
                    print("Vk Kaynağı tespit edildi.")
                    dönen=VKDök(deger+kaynaklar[Secim])
                    for i in dönen:
                        print(i)
                    cöz=input("İstediğiniz Çözünürlük değerini yazınız:")
                    if cöz in dönen:
                        os.system("start wmplayer "+dönen[cöz])
                    else:
                        print("Seçtiğiniz çözünürlük tespit edilemedi.")
                else:
                    print("Seçtiğiniz kaynak Henüz Yapılandırılmadı.")
                        
            
            #Burası Farklı fansubu olmayanların açılacağı yer
            print("Alternatif Yok.Mevcut Kaynaklar Getiriliyor.")
            
            
            
        
        
        
    
#########################################################
 
Son düzenleme:

NightBreather

Katılımcı Üye
21 Ağu 2016
591
0
Güncel Beyler kodlarda *** olan yerler vo id olacak sabahtan beri ne hata var diye bakıyom deli etti.
 
Son düzenleme:

M78

Üye
9 Eyl 2015
63
0
Pastebin'e yapıştırırsan sansürü aşmış olursun.
--
Koda gelirsek, beautifulsoup kullanımı gerekli miydi tartışılır, evet kodda sana çok yardımı dokunur fakat üstteki arkadaş gibi direkt cp&run olmaz..

Artı olarak, tebrik ederim. Yazdığın kod için değil, hep playerlar ile uğraşmaya korkmuşumdur, onun için.
Başarılar, kawaii.
 

NightBreather

Katılımcı Üye
21 Ağu 2016
591
0
Pastebin'e yapıştırırsan sansürü aşmış olursun.
--
Koda gelirsek, beautifulsoup kullanımı gerekli miydi tartışılır, evet kodda sana çok yardımı dokunur fakat üstteki arkadaş gibi direkt cp&run olmaz..

Artı olarak, tebrik ederim. Yazdığın kod için değil, hep playerlar ile uğraşmaya korkmuşumdur, onun için.
Başarılar, kawaii.

BeautifulSoup qpyton uzerinde bile yerlesik olarak bulundugu icin kullandim bu sayede telefondada kullanbiliyorum direkt mx player uzerinden istedigim bolumu aciyor

Regex kullanmak sanirim daha performasli olurdu ama burda amaca yonelik ilerledim
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.