Я пытаюсь создать простое приложение windows для выбора случайного движения ie из моего списка наблюдения trakt.tv, я использовал tkinter для основы c gui, затем использую случайную функцию для выбора движения ie из txt файла, затем с функцией библиотеки trakt я получаю свой список наблюдения из trakt и записываю его как txt для случайного выбора, определяю функцию для одной из моих кнопок, чтобы выбрать оттуда случайный mov ie, и показываю это в текстовом поле. Это работает таким образом, но теперь я хочу добавить обзор, рейтинг, информацию о годах, связанных со случайным mov ie, это работает хорошо только для «некоторых названий», но некоторые фильмы получают следующее сообщение об ошибке; "trakt.errors.NotFoundException: Not Found - метод существует, но запись не найдена"
Я думаю, что имена некоторых mov ie не могут получить прямой результат от trakt.tv, так что может быть решением для этого? Например; я могу получить trakt_id из списка наблюдения и использовать его для всей другой информации и как? Я проверяю файлы библиотеки, но кажется, что получаю информацию непосредственно на сайте со списком пользователей, и я не мог понять, как я могу получить любую другую информацию оттуда. Также, как я могу добавить случайный фанарт под кнопками, относящимися к mov ie, который выбирается случайным образом?
Извините, мой Engli sh и если я не могу хорошо объяснить свои вопросы:)
Мой код ниже;
# -*- coding: utf8 -*-
import random
from tkinter import *
from trakt import init
from trakt.users import User
from trakt.movies import Movie
import tkinter as tk
### For Trakt.tv Authorize and Save It
### init('myusername', store=True)
my = User('username') ## Must be your username
watchlist = my.watchlist_movies
f=open("watchmovies.txt","w", encoding='utf-8')
f.write(str(watchlist))
f.close()
# TXT DOSYASINI DÜZENLEME
# Read in the file
with open('watchmovies.txt', 'r') as file :
filedata = file.read()
# Replace the target string
filedata = filedata.replace('[', '')
filedata = filedata.replace(']', '')
# Write the file out again
with open('watchmovies.txt', 'w') as file:
file.write(filedata)
# New Line for Commas
f1=open("watchmovies.txt","r+")
input=f1.read()
print(input)
input=input.replace('<Movie>:','\n')
input=input.replace(',','')
f2=open("watchmovies.txt","w+")
f2.write(input)
f1.close()
f2.close()
# Pencere oluşturma
window = Tk()
window.title("Pick A Movie For Me")
window.geometry("300x500")
window.configure(background='black')
# Yazı Alanı oluşturma
T = Text(window, height=15, width=40, wrap = WORD)
T.configure(background='orange')
T.pack()
# Random bilgi için kaynak dosyası
lines = open('watchmovies.txt').read().splitlines()
# Buton işlemi
def callback():
myline = random.choice(lines)
print(myline)
myline2 = Movie(str(myline))
yeary = str(myline2.year)
ratingy = str(myline2.rating)[:4]
overviewy = str(myline2.overview)
T.delete('1.0', END)
showline= "\n" + myline + " " + ratingy + "\n" + yeary + "\n" + "\n" + overviewy
T.insert("1.0", showline)
T.tag_add('center', "1.0", "end")
T.tag_configure("center", justify='center', font='Calibri 11 bold')
# Butonlar
b = Button(window, text="Good Luck!", command=callback)
b.configure(background='black', foreground='white')
b.pack()
c = Button(window, text="Close", command=window.quit)
c.configure(background='black', foreground='white')
c.pack()
mainloop()
Код финальной ситуации после того, как я обработал все:
# -*- coding: utf8 -*-
import random
import os
from tkinter import *
import tkinter as tk
from trakt import init
from trakt.users import User
from trakt.movies import Movie
from IMDBAPI import IMDB
from tmdbv3api import TMDb
from tmdbv3api import Movie
from urllib.request import urlopen
from PIL import Image, ImageTk
from io import BytesIO
## FOR IMDB, TMDB, TRAKT API
imdb = IMDB()
tmdb = TMDb()
tmdb.api_key = '<YOUR_TMDB_API_KEY>'
my = User('<YOUR_TRAKT_USER_NAME>')
## Trakt.tv Watchlist
watchlist = my.watchlist_movies
f=open("watchmovies.txt","w", encoding='utf-8')
f.write(str(watchlist))
f.close()
# TXT FILE
# Read in the file
with open('watchmovies.txt', 'r') as file :
filedata = file.read()
# Replace the target string
filedata = filedata.replace('[', '')
filedata = filedata.replace(']', '')
# Write the file out again
with open('watchmovies.txt', 'w') as file:
file.write(filedata)
# New Line for Commas
f1=open("watchmovies.txt","r+")
input=f1.read()
print(input)
input=input.replace('<Movie>:','\n')
input=input.replace(',','')
f2=open("watchmovies.txt","w+")
f2.write(input)
f1.close()
f2.close()
# File for Random
lines = open('watchmovies.txt').read().splitlines()
# Button Functions
def callback():
### TEXT INFOS
myline = str(random.choice(lines))
imdbtt = IMDB.getIdFromName(myline)
ratingy = imdb.getRatingByImdbId(imdbtt)
summary = imdb.getSummaryByImdbId(imdbtt)
query_url = 'https://api.themoviedb.org/3/search/movie?api_key=<YOUR_API_KEY>&query='
## ARRANGMENTS FOR TMDB IMAGE SEARCH
myline2 = myline.replace(' ', '%20')
moviename = myline2
title2 = query_url + moviename
link = title2
f = urlopen(link)
myfile = f.read()
f = open("posterurl.txt", "w", encoding='utf-8')
f.write(str(myfile))
f.close()
f3 = open("posterurl.txt", "r+")
input = f3.read()
input = input.replace('\\/', '\n')
input = input.replace('jpg"', 'jpg\n')
f4 = open("posterurl.txt", "w+")
f4.write(input)
f3.close()
f4.close()
file = open("posterurl.txt", "r")
posterdata = file.readlines()
posterurl = 'https://image.tmdb.org/t/p/w185/' + posterdata[1]
##TEXT SETTINGS
global showline
showline = "\n" + myline + "\n" + ratingy + "\n"
global showline2
showline2 = "\n" + summary
## GETTING IMAGE URL
URL = posterurl
u = urlopen(URL)
raw_data = u.read()
u.close()
im = Image.open(BytesIO(raw_data))
global photo
photo = ImageTk.PhotoImage(im)
# Actions to GUI
def guishow():
##IMAGE TO GUI
global window2
window2.pack_forget()
window2 = tk.Label(image=photo)
window2.image = photo
window2.pack()
## TEXTS TO GUI
T.delete('1.0', END)
T.insert("1.0", showline)
T.tag_add('center', "1.0", "end")
T.tag_configure("center", justify='center', font='Calibri 11 bold')
T2.delete('1.0', END)
T2.insert("1.0", showline2)
T2.tag_add('center', "1.0", "end")
T2.tag_configure("center", justify='center', font='Calibri 10 bold')
# GUI: MAIN WINDOW
window = Tk()
window.title("Pick A Movie For Me")
window.geometry("300x600")
window.configure(background='black')
window2 = Frame(window)
window2.pack(side="bottom", expand=True, fill="both")
window2.configure(background='black')
# GUI: TEXT AREA
T = Text(window, height=5, width=40, wrap = WORD)
T.configure(background='darkgray')
T.pack()
# GUI: TEXT AREA 2
T2 = Text(window, height=8, width=40, wrap = WORD)
T2.configure(background='gray')
T2.pack()
## BUTTON FUNCTIONS MERGING
def buttoncase():
callback()
guishow()
# BUTTONS
b = Button(window, text="Good Luck!", command=buttoncase)
b.configure(background='black', foreground='white')
b.pack()
c = Button(window, text="Close", command=window.quit)
c.configure(background='black', foreground='white')
c.pack()
mainloop()