#!/usr/bin/env python
#-*-coding:utf-8-*-
from kivy.app import App
from kivy.uix.label import Label
from kivy.lang import Builder
from kivy.uix.stacklayout import StackLayout
from kivy.uix.widget import Widget
from kivy.uix.scrollview import ScrollView
from kivy.uix.gridlayout import GridLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.textinput import TextInput
from kivy.uix.anchorlayout import AnchorLayout
from kivy.config import Config
from kivy.uix.image import Image
from kivy.uix.button import Button
from kivy.core.window import Window
from kivy.uix.button import Button
from kivy.uix.screenmanager import Screen
from data_01 import ek1
import time
import random
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import sys
Window.clearcolor=(200/255, 70/255,10/255,1)
Window.softinput_mode = "below_target"
boy1=663
en1=300
Window.size = (en1, boy1)
beden_dilim="1" #ekranda görünecek olan fotoğraf.
kv = '''
<MainBoxLayout>:
orientation:"vertical"
canvas:
Color:
rgba:0,0,0,0,1
Rectangle:
size:self.size
pos:self.pos
source: 'arka_fon.png'
id:boxlayout
BoxLayout:
size_hint_y:.75
border:10
ScrollView:
id:scrlv
Image:
id:lokum
#size_hint_y:None
source: 'beden_dili_1.png'
multiline:False
#padding:5,5,5,5
#height: 35
ScrollView:
id:scrlv
GridLayout:
spacing:0
id:layout
background_color:197/255,131/255,200/255,1
cols:1
size_hint_y:None
height:max(self.minimum_height, scrlv.height)
padding:0,20,0,0
BoxLayout:
size_hint_y:.118
border:10
ScrollView:
id:scrlv
TextInput:
id:konus
#size_hint_y:None
font_size:konus.height-10
multiline:False
#padding:5,5,5,5
hint_text:"Mesaj Yaziniz."
height: max( (len(self._lines)+1) * self.line_height, scrlv.height) #orjinali bu
#height: 35
Button:
#size_hint_x:0.13
size_hint:None,None
#text: 'Gönder'
height: konus.height
width: konus.height
#padding:5,5,5,5
background_normal:"gon01.png"
background_down:"gon02.png"
on_release:root.pressed()
'''
Builder.load_string(kv)
class StartScreen(Screen):
pass
class SmoothLabel(Label):
@staticmethod
def create_sized_label(**kwargs):
max_width = kwargs.pop('max_width', 0)
if max_width <= 0:
# just create a SmoothLabel without a text_size
return SmoothLabel(**kwargs)
# calculate what the SmoothLabel size will be
core_label = CoreLabel(padding=[10,10], **kwargs) # use same padding as SmoothLabel
core_label.refresh()
if core_label.width > max_width:
# width is too big, use text_size to force wrapping
return SmoothLabel(text_size=(max_width,None), **kwargs)
else:
# width is OK, no need for text_size
return SmoothLabel(**kwargs)
tum_konusma=[]
mis_ad=""
mis_soyad=""
mis_meslek=""
mis_memleket=""
mis_cinsiyet=""
mis_burc=""
def kutu_uzunluk(n): #sorulan sorunun uzunluğuna göre kutu boyutu belirleniyor
p=len(n)
if p<7:
a='a001.png'
elif p<8:
a='a002.png'
elif p<9:
a='a003.png'
elif p<11:
a='a004.png'
elif p<13:
a='a005.png'
elif p<15:
a='a007.png'
elif p<17:
a='a008.png'
elif p<19:
a='a010.png'
elif p<21:
a='a011.png'
elif p<23:
a='a012.png'
elif p<25:
a='a012.png'
elif p<27:
a='a013.png'
elif p<29:
a='a014.png'
elif p<31:
a='a015.png'
elif p<33:
a='a016.png'
elif p<35:
a='a017.png'
elif p<37:
a='a018.png'
elif p<39:
a='a019.png'
elif p<41:
a='a020.png'
elif p<43:
a='a021.png'
else:
a='a022.png'
return a
def satir_say(n): #ekrana çıkan cevabın satırlara ayrılması için
satir=1
b=len(n)
x=n.split()
p,n=0,0
for k in range(len(x)):
p=p+len(x[k])+1
if p>30 and p<40 and b-p<=10:
satir+=1
p=0
elif p>30 and p<40:
satir+=1
p=0
elif p>39:
satir+=1
p=len(x[k])+1
if satir==1:
satir=30
elif satir==2:
satir=40
elif satir==3:
satir=50
elif satir==4:
satir=65
elif satir==5:
satir=80
elif satir==6:
satir=90
elif satir==7:
satir=100
elif satir==8:
satir=110
else:
satir=120
if n==" ":
satir=120
return satir
def bot_balon(n):
if n==" ":
a='b002.png'
else:
a='b001.png'
return a
def yuz_ifadem(a1): # sorulan sorulara göre yüz ifadesi değişecek
a=len(a1)
dd='beden_dili_2.png'
if a>1:
son_kar=a1[a-1:a]
if son_kar=="1" or son_kar=="2" or son_kar=="3" or son_kar=="4" or son_kar=="5" or son_kar=="6" or son_kar=="7" or son_kar=="8" or son_kar=="9":
print(a1,"son karakter: ",son_kar," ",a1)
a1=a1[0:a-1]
if son_kar=="1":
dd="beden_dili_1.png"
beden_dilim="1"
elif son_kar=="2":
dd="beden_dili_2.png"
beden_dilim="2"
elif son_kar=="3":
dd="beden_dili_3.png"
beden_dilim="3"
elif son_kar=="4":
dd="beden_dili_4.png"
beden_dilim="4"
elif son_kar=="5":
dd="beden_dili_5.png"
beden_dilim="5"
elif son_kar=="6":
dd="beden_dili_6.png"
beden_dilim="6"
elif son_kar=="7":
dd="beden_dili_7.png"
beden_dilim="7"
elif son_kar=="8":
dd="beden_dili_8.png"
beden_dilim="8"
elif son_kar=="9":
dd="beden_dili_9.png"
beden_dilim="9"
else:
if beden_dilim=="1":
dd="beden_dili_1.png"
elif beden_dilim=="2":
dd="beden_dili_2.png"
elif beden_dilim=="3":
dd="beden_dili_3.png"
elif beden_dilim=="4":
dd="beden_dili_4.png"
elif beden_dilim=="5":
dd="beden_dili_5.png"
elif beden_dilim=="6":
dd="beden_dili_6.png"
elif beden_dilim=="7":
dd="beden_dili_7.png"
elif beden_dilim=="8":
dd="beden_dili_8.png"
elif beden_dilim=="9":
dd="beden_dili_9.png"
return dd,a1
def kelime_ayir(n): #ekrana çıkan cevabın satırlara ayrılması için
satir=1
b=len(n)
x=n.split()
bs=" "
tum=bs
p,y,r=0,0,0
for k in range(len(x)):
p=p+len(x[k])+1
y=y+p
if p>30 and p<40 and y==p:
satir+=1
tum=tum+x[k]
p=0
elif p>30 and p<40 and b-p<=10:
satir+=1
tum=tum+" "+x[k]
p=0
elif p>30 and p<40 and k!=len(x):
satir+=1
tum=tum+" "+x[k]+"\n"+bs
p=0
elif p>30 and p<40 and k==len(x):
satir+=1
tum=tum+" "+x[k]
p=0
elif p>39:
satir+=1
tum=tum+"\n"+bs+x[k]+" "
p=len(x[k])+1
else:
tum=tum+" "+x[k]
return tum
def saat():
yerel_saat = time.localtime(time.time())
saat1=yerel_saat
if saat1.tm_hour<10:
st="0"+str(saat1.tm_hour)
else:
st=str(saat1.tm_hour)
if saat1.tm_min<10:
dak="0"+str(saat1.tm_min)
else:
dak=str(saat1.tm_min)
a=st+":"+dak
return a
def mukayese(a1,bolum):
x=a1.split()
a7=a1
b=0
a1=""
for a in range(len(x)):
if x[a]=="mi" or x[a]=="mı" or x[a]=="mu" or x[a]=="mü":
b+=1
else:
if (x[a]=="yoksa") or (x[a]=="kazanır")\
or (x[a]=="daha" and x[a+1]=="güvenli") or (x[a-1]=="daha" and x[a]=="güvenli")\
or (x[a]=="daha" and x[a+1]=="güzel") or (x[a-1]=="daha" and x[a]=="güzel")\
or (x[a]=="daha" and x[a+1]=="yakışıklı") or (x[a-1]=="daha" and x[a]=="yakışıklı")\
or (x[a]=="daha" and x[a+1]=="sağlıklı") or (x[a-1]=="daha" and x[a]=="sağlıklı")\
or (x[a]=="daha" and x[a+1]=="hızlı") or (x[a-1]=="daha" and x[a]=="hızlı")\
or (x[a]=="daha" and x[a+1]=="iyi") or (x[a-1]=="daha" and x[a]=="iyi"):
c=0
#bolum="+" # + olduğunda iyi olan seçilecek
else:
if a1=="":
a1=x[a]
else:
a1=a1+" "+x[a]
if b==2:
bolum="m"
return a1,bolum
else:
a1=a7
return a1, bolum
def cevapsiz(a1,bolum):
x=len(a1)
a1=a1[0:x-1]
if bolum=="1":
k2="Anlamadım. farklı bir şekilde ifade eder misin?"
return k2
if bolum=="2":
k2="Bunun anlamını bilmiyorum. Sanırım daha çok kitap okumalıyım."
return k2
if bolum=="3":
k2=a1+" kim bilmiyorum ama en kısa sürede öğreneceğim..."
return k2
if bolum=="4":
k2="Böyle bir ülke mi var! Hemen ararştırıyorum."
return k2
if bolum=="5":
k2="Başkent olup olmadığını bilmiyorum. Ama öğreneceğim."
return k2
if bolum=="6":
k2=a1+" kaç yaşında bilmiyorum. Ama Öğreneceğim."
return k2
if bolum=="7":
k2="Öldü mü?"
return k2
if bolum=="w":
k2="Kim söylemiş bilmiyorum."
return k2
if bolum=="m":
k2="Mevcut bilgilerim ikisi arasında tercih yapamak için yetersiz..."
return k2
else:
k2="Anlamadım. farklı bir şekilde ifade eder misin?"
bolum="1"
return k2
class MainBoxLayout(BoxLayout):
def pressed(self):
self.k2=""
bolum="1"
ad1="Misafir"
a2="SanalSohbet: "
c,c1,c2,bag1,bag2,bag3=0,0,0,0,0,0
a=True
while a:
ad=ad1+": "
cevap=0
a=False
a1=self.ids.konus.text
Soru_ilk_hali=self.ids.konus.text
a1=a1.lower() # kelimeler küçük harfe çevriliyor
a1=a1+bolum # sorulan soru ile bölüm bilgisi birleştiriliyor.
c1+=1
if analiz(a1)!=None:
self.k2=analiz(a1)
bd,a1=yuz_ifadem(analiz(a1))
self.k2=a1
self.ids.lokum.source = bd
cevap+=1
else:
self.k2=cevapsiz(a1,bolum)
tum_konusma.append("M:"+a1)
cevap+=1
#posta(a1)
self.ids.konus.text = ""
self.bot1 = Label(text="Lokum:",
color =(0, 0, 0, 1),
padding= (10,10),
#border_size=5,
size_hint = (None,None),
height=20,
width=en1-5,
font_size= 15,
#pos_hint = {"x":0.01, "y":0.01},
halign = "left",
disabled = False,
valign = "middle",
text_size =self.size)
self.bot = Label(text=self.k2, #PROGRAMIN CÜMLESİ BURADA
color =(0, 0, 0, 1),
padding= (20,10),
#border_size=5,
size_hint = (None,None),
height=satir_say(self.k2),
width=en1-5,
font_size= 15,
#pos_hint = {"x":0.01, "y":0.01},
halign = "left",
disabled = False,
valign = "middle",
text_size =self.size)
self.sen = Label(text="Sen: "+Soru_ilk_hali, #KULLANICININ YAZDIĞI CÜMLE BURADA
color =(1, 1, 1, 1),
padding= (10,10),
size_hint = (None,None),
height=59,
width=en1-5,
outline_color=(1,0,1),
outline_width= 1,
font_size= 15,
pos_hint = {"x":0.03, "y":0.01},
#halign = "left",
valign = "middle",
disabled = False,
text_size = self.size)
self.ids.layout.add_widget(self.sen)
self.ids.layout.add_widget(self.bot1)
self.ids.layout.add_widget(self.bot)
class MyApp(App):
def build(self):
return MainBoxLayout()
MyApp().run()
ekran kaydırmayı da sen yapmıştın belki hatırlarsın. kullanıcıdan aldığım cümleyi ekrana yazdırıyorum sonra ben cümlemi ekranan yazdırıyorum. label şeklinde.