Skip to content

Commit

Permalink
windows build'i init
Browse files Browse the repository at this point in the history
  • Loading branch information
KebabLord committed Jan 17, 2021
1 parent 3b3f92a commit b25eb0f
Show file tree
Hide file tree
Showing 8 changed files with 40 additions and 52 deletions.
17 changes: 0 additions & 17 deletions .github/workflows/main.yml

This file was deleted.

29 changes: 4 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,4 @@
# TURKANIME İNDİRİCİ
Türkanime için terminal video oynatıcı ve indirici. İtinayla her bölümü indirir & oynatır.
- Yığın bölüm indirebilir
- Animu izleyebilir
- Çözünürlük seçebilir
- Uygulama içinden arama yapabilir
- Bir yandan izlerken bir yandan animeyi kaydedebilir

#### Desteklenen kaynaklar:
```Sibnet, Odnoklassinki, Sendvid, Mail.ru, VK, Google+, Myvi, GoogleDrive, Yandisk, Vidmoly, Yourupload, Dailymotion```

#### İndirme bölümü:
https://github.com/KebabLord/turkanime-downloader/releases/tag/v3

### İndirme
![indirme.gif](ss_indir.gif)

### İzleme
![indirme.gif](ss_izle.gif)

### Yapılacaklar:
- ~~Domain güncellemesinden beridir kod stabil çalışmıyor, düzeltilecek.~~
- ~~Kod çorba gibi, basitleştirilecek.~~
- ~~Navigasyon ve indirme algoritması http talepleriyle sağlanacak.~~
- ~~Zaman bloğu olarak sleep'den kurtulunacak, elementin yüklenmesi beklenecek.~~
# Windows için PyInstaller ile build
```
pyinstaller --noconfirm --onefile --console --icon "ta.ico" --name "TurkAnimu" --add-binary "geckodriver.exe;." --add-binary "mpv.exe;." --add-binary "youtube-dl.exe;." "turkanime.py"
```
Binary file added ta.ico
Binary file not shown.
9 changes: 4 additions & 5 deletions turkanime.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,9 @@
from PyInquirer import prompt
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from turkanime_api import AnimeSorgula,Anime,gereksinim_kontrol
from turkanime_api import AnimeSorgula,Anime,dosya,get_config

print('TürkAnimu İndirici - github/Kebablord')
gereksinim_kontrol()

def at_exit(): # Program kapatıldığında
print(" "*50+"\rProgram kapatılıyor..",end="\r")
Expand All @@ -22,7 +21,7 @@ def at_exit(): # Program kapatıldığında
profile.set_preference("network.proxy.type", 0)

if name == 'nt': # WINDOWS
driver = webdriver.Firefox(profile, options=options,service_log_path='NUL', executable_path=r'geckodriver.exe')
driver = webdriver.Firefox(profile, options=options,service_log_path='NUL', executable_path=dosya('geckodriver.exe'))
else: # LINUX
driver = webdriver.Firefox(profile, options=options, service_log_path='/dev/null')

Expand Down Expand Up @@ -71,7 +70,7 @@ def at_exit(): # Program kapatıldığında
elif "Ayarlar" in islem:
parser = ConfigParser()
while True:
parser.read(path.join(".","config.ini"))
parser.read(get_config())
isAutosave = parser.getboolean("TurkAnime","izlerken kaydet")
dlFolder = parser.get("TurkAnime","indirilenler")
opsiyon = prompt([{
Expand All @@ -92,7 +91,7 @@ def at_exit(): # Program kapatıldığında
else:
break

with open("./config.ini","w") as f:
with open(get_config(),"w") as f:
parser.write(f)

elif "Kapat" in islem:
Expand Down
1 change: 1 addition & 0 deletions turkanime_api/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from sys import exit as kapat
import subprocess as sp
from .anime import AnimeSorgula,Anime
from .compile import dosya,get_config

def gereksinim_kontrol():
""" Gereksinimlerin erişilebilir olup olmadığını kontrol eder """
Expand Down
9 changes: 5 additions & 4 deletions turkanime_api/anime.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from bs4 import BeautifulSoup as bs4

from .players import url_getir
from .compile import dosya,get_config

class AnimeSorgula():
def __init__(self,driver=None):
Expand Down Expand Up @@ -67,7 +68,7 @@ def __init__(self,driver,seri,bolumler):

def indir(self):
parser = ConfigParser()
parser.read(path.join(".","config.ini"))
parser.read(get_config())
dlfolder = parser.get("TurkAnime","indirilenler")

if not path.isdir(path.join(dlfolder,self.seri)):
Expand All @@ -79,19 +80,19 @@ def indir(self):
print(" "*50+f"\r\n{self.driver.title} indiriliyor:")
url = url_getir(self.driver)
suffix="--referer https://video.sibnet.ru/" if "sibnet" in url else ""
system(f'youtube-dl --no-warnings -o "{path.join(dlfolder,self.seri,bolum)}.%(ext)s" "{url}" {suffix}')
system(f'{dosya("youtube-dl.exe")} --no-warnings -o "{path.join(dlfolder,self.seri,bolum)}.%(ext)s" "{url}" {suffix}')
return True

def oynat(self):
self.driver.get(f"https://turkanime.net/video/{self.bolumler}")
url = url_getir(self.driver)

parser = ConfigParser()
parser.read(path.join(".","config.ini"))
parser.read(get_config())

suffix ="--referrer=https://video.sibnet.ru/ " if "sibnet" in url else ""
suffix+= "--msg-level=display-tags=no "
suffix+="--stream-record={}.mp4 ".format(path.join(".","Kayıtlar",self.bolumler)) if parser.getboolean("TurkAnime","izlerken kaydet") else ""

system(f'mpv "{url}" {suffix} ')
system(f'{dosya("mpv.exe")} "{url}" {suffix} ')
return True
23 changes: 23 additions & 0 deletions turkanime_api/compile.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import os
import sys

def dosya(relative_path):
""" PyInstaller için gömülü dosyaların dizinini getir """
try:
base_path = sys._MEIPASS
except Exception:
base_path = os.path.abspath(".")

return os.path.join(base_path, relative_path)

def get_config():
""" Kullanıcı klasöründe eğer yoksa TurkAnimu.ini dosyasın oluştur """
confdir = os.path.join( os.path.expanduser("~"), "TurkAnimu.ini" )
if not os.path.isfile( confdir ):
with open(confdir,"w") as f:
f.write(
"[TurkAnime]\n"+
"izlerken kaydet = False\n"+
"indirilenler = .\n"
)
return confdir
4 changes: 3 additions & 1 deletion turkanime_api/players.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
from selenium.common.exceptions import NoSuchElementException
from bs4 import BeautifulSoup as bs4

from .compile import dosya

desteklenen_players = [
"SIBNET",
"MAIL",
Expand Down Expand Up @@ -38,7 +40,7 @@ def elementi_bekle(selector,_driver):
def check_video(url):
""" Video yaşıyor mu kontrol eder """
print(" "*50+"\rVideo yaşıyor mu kontrol ediliyor..",end="\r")
test = sp.Popen(f'youtube-dl --no-warnings -F "{url}"',stdout=sp.PIPE,shell=True)
test = sp.Popen(f'{dosya("youtube-dl.exe")} --no-warnings -F "{url}"',stdout=sp.PIPE,shell=True)
stdout = test.communicate()[0].decode()
stdexit = test.returncode
if stdexit == 0 and "php" not in stdout:
Expand Down

0 comments on commit b25eb0f

Please sign in to comment.