858 gün önce Python | pyinstaller ve pydub ortak problemi
sorusunu cevapladı.
kod bu şekilde tam olarak.
from math import exp
import os # dosya okuma için içeri alınan kütüphane
import sys
import datetime # tarih işlemleri için içeri alınan kütüphane
from imap_tools import MailBox, AND # mail okumak için kütüphane
import smtplib # mail göndermek için kütüphane
from email.mime.multipart import MIMEMultipart # mail göndermek için kütüphane eki
from email.mime.text import MIMEText # mail göndermek için kütüphane eki
from pydub import AudioSegment # mp3 düzenleme için oluşturulan kütüphane
import speech_recognition as sr # sesi yazıya döken kütüphane. Kurulumu: pip install SpeechRecognition
r = sr.Recognizer() # ses to text kütüphanesi fonksiyonu
from pathlib import Path # dosya yolu okumakla ilgili kütüphane
import json # json kütüphanesi
import time # zaman kütüphanesi
from tkinter import * # tasarim kütüphanesi
from tkinter import ttk
def sabitlerNewWindow():[email protected]
def sabitlerDataSaveBtn():
with open('dosyayolu/sabitler.json') as f:
sabitlerOku = json.load(f)
sabitlerJson['aliciMail'] = aliciMail.get()
sabitlerJson['inenDosyalar'] = inenDosyalar.get()
sabitlerJson['yazilacakDosya'] = yazilacakDosya.get()
sabitlerJson['istenenDBFS'] = istenenDBFS.get()
with open('dosyayolusabitler.json', 'w') as j:
json.dump(sabitlerJson, j)
LABEL = Label(sabitlerNW, text='İşlem başarılı.').grid(row=6,column=1)
with open('dosyayolusabitler.json') as f:
sabitlerJson = json.load(f)
sabitlerNW = Toplevel()
sabitlerNW.geometry('500x170')
sabitlerNW.title('Sabitler')
aliciMail = Label(sabitlerNW, text="Alıcı E-Mailler")
aliciMail.grid(sticky="W", row=1,column=0)
aliciMail = Label(sabitlerNW, text="(Virgül ile ayırınız)")
aliciMail.grid(sticky="W", row=1,column=3)
aliciMail = Entry(sabitlerNW,width=35)
aliciMail.insert(END, sabitlerJson['aliciMail'])
aliciMail.grid(row=1,column=1)
inenDosyalar = Label(sabitlerNW, text="İnecek Dosya Yolu")
inenDosyalar.grid(sticky="W", row=2,column=0)
inenDosyalar = Entry(sabitlerNW,width=35)
inenDosyalar.insert(END, sabitlerJson['inenDosyalar'])
inenDosyalar.grid(row=2,column=1)
yazilacakDosya = Label(sabitlerNW, text="Yazılacak Dosya Yolu")
yazilacakDosya.grid(sticky="W", row=3,column=0)
yazilacakDosya = Entry(sabitlerNW,width=35)
yazilacakDosya.insert(END, sabitlerJson['yazilacakDosya'])
yazilacakDosya.grid(row=3,column=1)
istenenDBFS = Label(sabitlerNW, text="İstenilen DB")
istenenDBFS.grid(sticky="W", row=4,column=0)
istenenDBFS = Entry(sabitlerNW,width=35)
istenenDBFS.insert(END, sabitlerJson['istenenDBFS'])
istenenDBFS.grid(row=4,column=1)
kayitButton = Button(sabitlerNW, text='Kaydet', width=30, height=2, command=sabitlerDataSaveBtn)
kayitButton.grid(pady=10, row=5,column=1)
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
#▼▼▼▼▼▼▼ Ayarlar -> Email Menüsü ▼▼▼▼▼▼▼▼#
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
def emailNewWindow():
def emailDataSaveBtn():
with open('dosyayolusabitler.json') as f:
sabitlerOku = json.load(f)
sabitlerJson['emailKullanici'] = emailEntry.get()
sabitlerJson['emailSifre'] = sifreEntry.get()
sabitlerJson['kontrolEdilecekEmail'] = kontrolEdilecekEmailEntry.get()
sabitlerJson['islemSonuEmail'] = islemSonuEmail.get()
with open('dosyayolusabitler.json', 'w') as j:
json.dump(sabitlerJson, j)
LABEL = Label(emailNW, text='İşlem başarılı.').grid(row=8,column=1)
with open('dosyayolusabitler.json') as f:
sabitlerJson = json.load(f)
emailNW = Toplevel()
emailNW.geometry('450x225')
emailNW.title('E-mail Ayar Sayfası')
emailLabel = Label(emailNW, text="Ulaşılacak E-Mail")
emailLabel.grid(sticky="W", row=1,column=0)
emailEntry = Entry(emailNW,width=50)
emailEntry.insert(END, sabitlerJson['emailKullanici'])
emailEntry.grid(row=1,column=1, columnspan=2)
sifreLabel = Label(emailNW, text="Şifre")
sifreLabel.grid(sticky="W", row=2,column=0)
sifreEntry = Entry(emailNW,width=50)
sifreEntry.insert(END, sabitlerJson['emailSifre'])
sifreEntry.grid(row=2,column=1, columnspan=2)
ttk.Separator(emailNW, orient=HORIZONTAL).grid(row=3, columnspan=4, sticky='ew', pady=10)
kontrolEdilecekEmailLabel = Label(emailNW, text="Kontrol Edilecek Email")
kontrolEdilecekEmailLabel.grid(sticky="W", row=4,column=0)
kontrolEdilecekEmailEntry = Entry(emailNW,width=50)
kontrolEdilecekEmailEntry.insert(END, sabitlerJson['kontrolEdilecekEmail'])
kontrolEdilecekEmailEntry.grid(row=4,column=1, columnspan=2)
ttk.Separator(emailNW, orient=HORIZONTAL).grid(row=5, columnspan=4, sticky='ew', pady=10)
islemSonucuEmailLabel = Label(emailNW, text="İşlem Sonu Email")
islemSonucuEmailLabel.grid(sticky="W", row=6,column=0)
islemSonuEmail = IntVar()
R1 = Radiobutton(emailNW, text="Göndersin", variable=islemSonuEmail, value=True)
R1.config(indicatoron=0, bd=4, width=12)
R1.grid(row=6,column=1,sticky="w")
R2 = Radiobutton(emailNW, text="Göndermesin", variable=islemSonuEmail, value=False)
R2.config(indicatoron=0, bd=4, width=12)
R2.grid(row=6,column=2,sticky="w")
if(sabitlerJson['islemSonuEmail']==1):
R1.select()
else:
R2.select()
kayitButton = Button(emailNW, text='Kaydet', width=25, height=2, command=emailDataSaveBtn)
kayitButton.grid(pady=10, row=7,column=1)
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
#▼▼▼▼▼▼▼ Ayarlar -> Email Menüsü ▼▼▼▼▼▼▼▼#
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
#▼▼▼▼▼▼▼ İşlem Yap Btn ▼▼▼▼▼▼▼▼#
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
def islemYap():
reklamSorgu()
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
#▼▼▼▼▼▼▼ İşlem Yap Btn ▼▼▼▼▼▼▼▼#
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
#▼▼▼▼▼▼▼ TKinter (Tasarim) ▼▼▼▼▼▼▼▼#
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
ROOT = Tk()
ROOT.title('Reklam Oto Alım Programı')
ROOT.geometry("500x500")
ROOT.wm_iconbitmap("dosyayoluicon.ico")
BUTTON = Button(ROOT, text='Manuel Çek', width=30, height=2, command=islemYap, bg='green', fg='white')
BUTTON.place(anchor='n')
BUTTON.pack(pady=5)
LABEL = Label(ROOT, text='Program her dakika başı kontrol edecek.', font=(None,10), bg='red', fg='white', height=2, width=700)
LABEL.pack()
menubar = Menu(ROOT)
filemenu = Menu(menubar, tearoff=0)
filemenu.add_command(label="Sabitler", command=sabitlerNewWindow)
filemenu.add_command(label="E-Mail", command=emailNewWindow)
filemenu.add_separator()
filemenu.add_command(label="Exit", command=ROOT.destroy)
menubar.add_cascade(label="Menü", menu=filemenu)
editmenu = Menu(menubar, tearoff=0)
ROOT.config(menu=menubar)
main_frame = Frame(ROOT)
main_frame.pack(fill=BOTH, expand=1)
my_canvas = Canvas(main_frame)
my_canvas.pack(side=LEFT, fill=BOTH, expand=1)
my_scrollbar = ttk.Scrollbar(main_frame, orient=VERTICAL, command=my_canvas.yview)
my_scrollbar.pack(side=RIGHT, fill=Y)
my_canvas.configure(yscrollcommand=my_scrollbar.set)
my_canvas.bind('<Configure>', lambda e: my_canvas.configure(scrollregion=my_canvas.bbox("all")))
second_frame = Frame(my_canvas)
my_canvas.create_window((0,0), window=second_frame, anchor="nw")
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
#▼▼▼▼▼▼▼ TKinter (Tasarim) ▼▼▼▼▼▼▼▼#
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼ SAAT ▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
LABEL = Label(ROOT, font=("Boulder", 68, 'bold'), bg="#f2e750", fg="#363529", bd=25)
LABEL.pack()
def digital_clock():
time_live = time.strftime("%H:%M:%S")
LABEL.config(text=time_live)
LABEL.after(200, digital_clock)
digital_clock()
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼ SAAT ▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
#▼▼▼▼▼▼▼ Reklam Kontrol Fonksiyonu ▼▼▼▼▼▼▼▼#
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
def isimDegistir(data):
data = data.split('.')
data1 = data[0].split('-')
if(len(data1)>1):
return data1[1]
else:
return data1[0]
def reklamSorgu():
with open('dosyayolusabitler.json') as f:
sabitlerJson = json.load(f)
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
#▼▼▼▼▼▼▼ SABİT VERİLER ▼▼▼▼▼▼▼▼#
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
emailKullanici = str(sabitlerJson['emailKullanici']) # mail
emailSifre = str(sabitlerJson['emailSifre']) # şifre
aliciMail = str(sabitlerJson['aliciMail']) #mailin gönderileceği emailler
inenDosyalar = str(sabitlerJson['inenDosyalar']) # mailden inen dosyanın tutulduğu klasör
yazilacakDosya = str(sabitlerJson['yazilacakDosya']) # dosya yolu belirlendi.
istenenDBFS = int(sabitlerJson['istenenDBFS']) # ses seviyesinin getirilmesini istediğimiz ses seviyesi.
suffixes = (".mp3, wav, .MP3, .WAV")
mp3CiktiText = ""
liste = [] # boş liste oluşturuldu
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
#▼ MAİLİ OKU VE DOSYAYI İNDİR ▼#
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
#print('E-Mail e bağlanılıyor.')
posta_kutusu = MailBox('imap.gmail.com') #bağlanacağı yer
posta_kutusu.login(emailKullanici, emailSifre, initial_folder="INBOX") # login işlemi "initial_folder işlemi ana dizini okuması için"
#LABEL = Label(second_frame, text=str(time.strftime('%H:%M:%S'))+' E-Mail e bağlanıldı.', anchor="w")
#LABEL.pack(side=BOTTOM, fill='both')
#print(time.strftime('%H:%M:%S')+' E-Mail e bağlanıldı.')
# from_ şeklinde tanımlama yaparak sadece tek mail den gelen mailleri okutabiliyoruz.
# date_gte şu tarihten sonraki mailleri al ya da benzeri işlemler için
# seen True ve ya False denirse mail okunmuş ya da okunmamış filtrelemesi için.
kriter = AND(date_gte=datetime.date(2021,12,5), from_="[email protected]", seen=False) # filtreleme kriterlerini işliyorsun
postaKutusuVeri = posta_kutusu.fetch(kriter)
for mailVeri in postaKutusuVeri: # mesajlari for döngüsüne sokuyorsun
LABEL = Label(second_frame, text=time.strftime('%H:%M:%S')+' Yeni Email Tespit Edildi: ' + str(mailVeri.subject), anchor="w")
LABEL.pack(side=BOTTOM, fill='both')
#print(time.strftime('%H:%M:%S')+' Yeni Email Tespit Edildi: ' + str(mailVeri.subject))
mailText = mailVeri.text
for att in mailVeri.attachments: # dosya eki olan mailleri alıyor
with open(inenDosyalar+'{}'.format(att.filename), 'wb') as f:
f.write(att.payload)
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
#▼▼▼▼▼ DOSYA OKUMA İŞLEMİ ▼▼▼▼▼#
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
dosyalar = os.listdir(inenDosyalar) # dosyayi okuma fonksiyonu
for dosya in dosyalar: # for döngüsüne sokuldu
if dosya.endswith(tuple(suffixes)): # .mp3 olanlar seçildi.
dosya = dosya.split('.')
liste.append(dosya) # liste adındaki boş listeye eklendi.
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
#▼▼▼▼ MP3 DÜZENLEME İŞLEMİ ▼▼▼▼#
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
for mp3Isim in liste: # for döngüsü açıldı
mp3 = str(mp3Isim[0]) # for'un içindekinin biçimi belirlendi.
inenDosyalarBul = inenDosyalar + str(mp3Isim[0])+'.'+str(mp3Isim[1])
song = AudioSegment.from_file(inenDosyalarBul, format=mp3Isim[1]) # fonksiyon çalıştırıldı.
orginalDBFS = int(song.dBFS) # orjinal db yi veri
eklenecekDBFS = str(abs(orginalDBFS - istenenDBFS)) # aradaki farkı hesaplar
song = song.apply_gain("+"+eklenecekDBFS) # aradaki farkı sese işler
song.export(yazilacakDosya + isimDegistir(mp3)+'.mp3' , format='mp3', bitrate="320k") # mp3 ve 320k formatında dışarıya aktarır
song.export(yazilacakDosya + mp3+'.wav' , format='wav') # okuma için wav dosyası oluşturuluyor.
######### ses to text #########
file = sr.AudioFile(yazilacakDosya + mp3+'.wav')
with file as source:
r.adjust_for_ambient_noise(source)
audio = r.record(source)
sesToTextSonuc = r.recognize_google(audio,language='tr')
######### ses to text #########
LABEL = Label(second_frame, text=time.strftime('%H:%M:%S')+ ' ' +mp3+' adlı ses dosyasının işlenmesi bitti. ' + str(eklenecekDBFS) + ' db ekleme yapıldı.', anchor="w")
LABEL.pack(side=BOTTOM, fill='both')
#print(time.strftime('%H:%M:%S')+ ' ' +mp3+' adlı ses dosyasının işlenmesi bitti. ' + str(eklenecekDBFS) + ' db ekleme yapıldı.' )
#os.remove(inenDosyalarBul) # mailden gelen ses dosyası silindi.
os.remove(yazilacakDosya + mp3+'.wav') # mailden gelen ses dosyası silindi.
mp3CiktiText = mp3CiktiText + "<strong>" + mp3 + "</strong>" + str(" 'ün süresi => ") + str(song.duration_seconds) + "<strong>" + " | Metnin İçeriği: </strong>"+ sesToTextSonuc +"<br><br>"
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
#▼▼▼▼▼▼▼▼ MAİL GÖNDERM ▼▼▼▼▼▼▼▼#
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
try:
if(sabitlerJson['islemSonuEmail']==1):
mailIcerik = "--------SİSTEMDEN GELEN VERİ----------- <br>" + str(mp3CiktiText) + "<br> --------ORJİNAL MAİL İÇERİĞİ----------- <br>" + str(mailText) #mail içeriği
mail = smtplib.SMTP("smtp.gmail.com",587) #mail bağlantısı
mail.ehlo()
mail.starttls()
mail.login(emailKullanici, emailSifre) # gmail kullanıcı adımı ve şifremi giriyorum.
mesaj = MIMEMultipart()
mesaj["From"] = emailKullanici # Gönderen kişi
mesaj["To"] = aliciMail # Alıcı
mesaj["Subject"] = str(mailVeri.subject) + ' İşlem yapıldı' # Konu
body_text = MIMEText(mailIcerik, "html")
mesaj.attach(body_text)
mail.sendmail( mesaj["From"], mesaj["To"], mesaj.as_string())
mail.close()
LABEL = Label(second_frame, text=time.strftime('%H:%M:%S')+ ' ' + str(mesaj["Subject"]) + str(' <- adli mail gönderildi.'), anchor="w")
LABEL.pack(side=BOTTOM, fill='both')
#print(time.strftime('%H:%M:%S')+ ' ' + str(mesaj["Subject"]) + str(' <- adli mail gönderildi.'))
except:
LABEL = Label(second_frame, text=time.strftime('%H:%M:%S') + " Hata:" + sys.exc_info()[0], anchor="w")
LABEL.pack(side=BOTTOM, fill='both')
#print(time.strftime('%H:%M:%S') + " Hata:", sys.exc_info()[0])
else:
LABEL = Label(second_frame, text=time.strftime('%H:%M:%S')+' Yeni E-Mail Bulunamadı.', anchor="w")
LABEL.pack(side=BOTTOM, fill='both')
#print(time.strftime('%H:%M:%S')+' Yeni E-Mail Bulunamadı.')
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
#▼▼▼▼▼▼▼ Reklam Kontrol Fonksiyonu ▼▼▼▼▼▼▼▼#
#▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼#
while True:
zaman = time.gmtime()
ROOT.update()
if zaman.tm_sec == 00:
reklamSorgu()
859 gün önce Python | pyinstaller ve pydub ortak problemi
sorusunu cevapladı.
kodu aldığımda command kısmında hata veriyor o bir değişken olması gerekli galiba.
python da yeni olduğum için anlamaıdm o kısımı tam olarak bir de bu kodu kendi kodumun içerisine mi eklemem gerekli acaba?
949 gün önce Curl ile Post attığım sayfaya yönlendirme yapmak istiyorum.
sorusunu cevapladı.
Sağolasın @tayfunerbilen hocam cevap vermişsin yeni gördüm :)
Sonradna sunucu firmam sağolsun hatamı buldu.
Ben HTTP'den HTTPS'ye istek attığım için cevap alamıyormuşum. Sonrasında HTTPS yapınca iki tarafı da sorun çözdüldü.
1140 gün önce Mysql JOIN de SUM işleminde problem
sorusunu cevapladı.
<?php
SELECT
k.*,
m.*,
c.*,
(SELECT SUM(miktar) AS c_miktar FROM cari WHERE k.kod = c.takip_kodu) AS c_miktar,
(k.alinacak - (SELECT SUM(miktar) AS c_miktar FROM cari WHERE k.kod = c.takip_kodu)) AS kalan,
k.id AS k_id,
m.id AS m_id,
c.id AS c_id
FROM kayitlar AS k
INNER JOIN musteriler AS m ON k.musteri = m.id
LEFT JOIN cari AS c ON k.kod = c.takip_kodu
GROUP BY k.kod
?>
Çözümü bu şekilde buldum arkadaşlar ihtiyacı olan olur diye buraya bırakıyorum.
1635 gün önce Jquery AJAX ile post sorunu
sorusunu cevapladı.
mrknowitall ekledim hocam tüm kodları
1635 gün önce Jquery AJAX ile post sorunu
sorusunu cevapladı.
crazzyman bu da olmadı ağa :S
1635 gün önce Jquery AJAX ile post sorunu
sorusunu cevapladı.
mrknowitall dediğinizi yaptım fakat bir işe yaramadı maalesef. :(