ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #471  
Старый 16.12.2009, 18:09
Аватар для Chubakur
Chubakur
Познающий
Регистрация: 06.04.2009
Сообщений: 69
Провел на форуме:
1032476

Репутация: 39
Отправить сообщение для Chubakur с помощью ICQ
По умолчанию

Цитата:
Сообщение от whexp  
При нажатии на кнопку создаешь и запускаешь поток, в котором и добавляешь элементы. Если не справишься, то днем, когда прийду напишу примерчик.
Напиши пожалуйста!
thread.start_new_thread(test,(link,))
не работает. функция test не вызывается по какой-то причине.
PHP код:
import urllib
import pygtk
pygtk
.require('2.0')
import gtk
import re
import random
import os
import urlparse
import time
import threading
link
=""
pressed=False
def printG
(log):
    
label.set_text(label.get_text()+'\n'+log)
    return
def run():
    global 
link
    printG
("Please wait")
    
startHTMLdownload(link)
    
parsed_string=IOreg()
    
downloadImages(parsed_string,link)
def startDownloadG(button,textbox,label):
    global 
link
    link 
textbox.get_text()
    if 
link[0:7]=="http://":
        
link=link
    
else:
        
link="http://"+str(link)
    
mtimer=threading.Timer(0.1,run)
    
mtimer.start()
def startHTMLdownload(link):
    try:
        
temp_file=file("temp","r")
    
except:
        
temp_file=file("temp","w")
    
temp_file.close()
    
temp_file=file("temp","w")
    
printG("Downloading source code")
    
urllib.urlretrieve(link,"temp")
    
temp_file.close()
    
printG("Source code downloaded")
def HTMLinitializator():
    
link=raw_input("Enter URL:")
    if 
link[0:7]=="http://":
        
startHTMLdownload(link)
    else:
        
link="http://"+str(link)
        
startHTMLdownload(link)
    return 
link
def regexper
(source_string,preg_mask):
    
parsed_string=re.findall(preg_masksource_string)
    return 
parsed_string
def IOreg
():
    
ofile=file("save.txt","w")
    
ifile=file("temp","r")
    
regexp="src=[\'|\"]([^\"]+[gif|png|jpg|jpeg|bmp|img])[\'|\"]"
    
source_string=ifile.read()
    
parsed_string regexper(source_string,regexp)
    for 
image in parsed_string:
        
ofile.write(str(image+'\n'))
    
ofile.close()
    
ifile.close()
    return 
parsed_string
def downloadImages
(img_array,link):
    
parsed_url=urlparse.urlparse(link)
    if 
img_array.__len__():
        
printG("Creating directory.")
        try:
            
os.mkdir(parsed_url.netloc)
        
except:
            
printG("Directory already exist")
    
counter=0
    printG
("Start download")
    for 
image in img_array:
        if 
image[0:4]=="http":
            
image_file_name=str(parsed_url.netloc)+"/"+str(counter)+str(image[image.__len__()-4:image.__len__()])
            
save_file=file(image_file_name,"w")
            
save_file.write("")
            
printG("Start downloading:"+str(image))
            try:
                
urllib.urlretrieve(imageimage_file_name)
            
except:
                
printG("Error")
                continue
            
counter=counter+1
            printG
("downloaded:"+str(counter)+"/"+str(img_array.__len__()))
        
elif image[0:2]=="./":
            
absoluteLink=link+image[1:image.__len__()]
            
image_file_name=str(parsed_url.netloc)+"/"+str(counter)+str(image[image.__len__()-4:image.__len__()])
            
save_file=file(image_file_name,"w")
            
save_file.write("")
            
printG("Start downloading:"+str(absoluteLink))
            try:    
                
urllib.urlretrieve(absoluteLinkimage_file_name)
            
except:
                
printG("Error")
                continue
            
counter=counter+1
            printG
("downloaded:"+str(counter)+"/"+str(img_array.__len__()))
        
elif image[0:2]=="..":
            
printG("Relative path is not support.")
            continue
        
elif image[0]=="/":
            
absoluteLink=link+image
            image_file_name
=str(parsed_url.netloc)+"/"+str(counter)+str(image[image.__len__()-4:image.__len__()])
            
save_file=file(image_file_name,"w")
            
save_file.write("")
            
printG("Start downloading:"+str(absoluteLink))
            try:
                
urllib.urlretrieve(absoluteLinkimage_file_name)
            
except:
                
printG("Error")
                continue
            
counter=counter+1
            printG
("downloaded:"+str(counter)+"/"+str(img_array.__len__()))
        else:
            
absoluteLink=link+"/"+image
            image_file_name
=str(parsed_url.netloc)+"/"+str(counter)+str(image[image.__len__()-4:image.__len__()])
            
save_file=file(image_file_name,"w")
            
save_file.write("")
            
printG("Start downloading:"+str(absoluteLink))
            try:
                
urllib.urlretrieve(absoluteLinkimage_file_name)
            
except:
                
printG("Error")
                continue
            
counter=counter+1
            printG
("downloaded:"+str(counter)+"/"+str(img_array.__len__()))
#main()
window=gtk.Window()
vbox=gtk.VBox()
label=gtk.Label()
textbox=gtk.Entry()
btn_main=gtk.Button("Start")
window.add(vbox)
vbox.add(textbox)
vbox.add(btn_main)
vbox.add(label)
window.show_all()
window.connect("delete-event",lambda a,bgtk.main_quit())
btn_main.connect("clicked",startDownloadG,textbox,label)
gtk.main() 
Вот код. Тут у меня при нажатии на кновку start стартует таймер, который через 0,1 с выполняет функцию run() - а эта функция уже инициализирует все остальные функции. Но по какой-то причине функция run не запускается при включенной граф.оболочке программы.
P.S. Прошу прощения за говнокод, просто изначально это была консольная утилита. И чтобы не писать все заново, я просто отредактировал старый код. Есть много лишнего. Да, и не смейтесь над функцией regexper, я вначале её написал, и только потом осознал что за бред я сделал

Последний раз редактировалось Chubakur; 16.12.2009 в 21:42..
 
Ответить с цитированием

  #472  
Старый 16.12.2009, 21:59
Аватар для whexp
whexp
Познающий
Регистрация: 30.11.2009
Сообщений: 97
Провел на форуме:
333264

Репутация: 80
По умолчанию

Нашел тебе статью с примерчиком:
http://h8-self.livejournal.com/6590.html

ps. честно говоря я в pygtk не понимаю ничего)) просто сталкивался давно с такой проблемой на wxpython. так вот. возможно в твоем коде нужно вызвать метод gtk.gdk.threads_init()?

Последний раз редактировалось whexp; 16.12.2009 в 22:02..
 
Ответить с цитированием

  #473  
Старый 16.12.2009, 22:45
Аватар для Chubakur
Chubakur
Познающий
Регистрация: 06.04.2009
Сообщений: 69
Провел на форуме:
1032476

Репутация: 39
Отправить сообщение для Chubakur с помощью ICQ
По умолчанию

Цитата:
Сообщение от whexp  
Нашел тебе статью с примерчиком:
http://h8-self.livejournal.com/6590.html

ps. честно говоря я в pygtk не понимаю ничего)) просто сталкивался давно с такой проблемой на wxpython. так вот. возможно в твоем коде нужно вызвать метод gtk.gdk.threads_init()?
Огромное тебе спасибо! После того как я вызвал этод метод, код заработал как часы, даже без исправлений! Большое тебе спасибо!
 
Ответить с цитированием

  #474  
Старый 16.12.2009, 22:53
Аватар для whexp
whexp
Познающий
Регистрация: 30.11.2009
Сообщений: 97
Провел на форуме:
333264

Репутация: 80
По умолчанию

Цитата:
Сообщение от Chubakur  
Огромное тебе спасибо! После того как я вызвал этод метод, код заработал как часы, даже без исправлений! Большое тебе спасибо!
не за что, рад помочь
 
Ответить с цитированием

  #475  
Старый 17.12.2009, 14:17
Аватар для Omegа
Omegа
Новичок
Регистрация: 16.12.2009
Сообщений: 27
Провел на форуме:
203807

Репутация: 30
По умолчанию

Подскажите, пожалуйста, где можно почитать про программирование для смартфонов на питоне? В частности интересует Symbian 9.4 TOUCH.

P.S. нужно узнать про работу с 2d графикой и тачскрином.

Последний раз редактировалось Omegа; 17.12.2009 в 14:36..
 
Ответить с цитированием

  #476  
Старый 17.12.2009, 15:15
Аватар для whexp
whexp
Познающий
Регистрация: 30.11.2009
Сообщений: 97
Провел на форуме:
333264

Репутация: 80
По умолчанию

Omegа, конкретно по pys60 можешь посмотреть здесь:
http://mobilenin.com/pys60/menu.htm
http://wiki.forum.nokia.com/index.php/Introduction_to_PyS60
 
Ответить с цитированием

  #477  
Старый 18.12.2009, 10:08
Аватар для login999
login999
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме:
4512757

Репутация: 973


По умолчанию

Цитата:
Сообщение от whexp  
Нашел тебе статью с примерчиком:
http://h8-self.livejournal.com/6590.html

ps. честно говоря я в pygtk не понимаю ничего)) просто сталкивался давно с такой проблемой на wxpython. так вот. возможно в твоем коде нужно вызвать метод gtk.gdk.threads_init()?
На wxpython есть пару гуев - хз, никогда не инициализировал потоки - сразу и тупо запускал да и все. Задумался о переходе на pyQt. Не нравится лицензией, зато ВОЗМОЖНО избавлюсь от проблем gtk(Arch, Ubuntu). На Арче - вылетало приложение нафиг при любой попытке изменить фрейм, на Ubuntu реже, но слетает с сегфолтом (плюс в консоле по жизни ошибки).
Вопрос на засыпку - как себя ведёт pyQt ?
 
Ответить с цитированием

  #478  
Старый 18.12.2009, 11:43
Аватар для razb
razb
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме:
2868783

Репутация: 414


Отправить сообщение для razb с помощью ICQ
По умолчанию

Цитата:
Вопрос на засыпку - как себя ведёт pyQt ?
Да нормально себя ведет, по крайней мере пока нареканий нету.
Цитата:
Задумался о переходе на pyQt. Не нравится лицензией
Что именно тебя не устраивает в лицензии? )
 
Ответить с цитированием

  #479  
Старый 18.12.2009, 13:02
Аватар для login999
login999
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме:
4512757

Репутация: 973


По умолчанию

Цитата:
Сообщение от razb  
Да нормально себя ведет, по крайней мере пока нареканий нету.

Что именно тебя не устраивает в лицензии? )
Цена в 350 английских фунтов за версию для использования в разработке проприетарного ПО.
 
Ответить с цитированием

  #480  
Старый 18.12.2009, 17:21
Аватар для whexp
whexp
Познающий
Регистрация: 30.11.2009
Сообщений: 97
Провел на форуме:
333264

Репутация: 80
По умолчанию

login999, дык на wx их и не надо инициализировать - просто создаешь и запускаешь. насчет корявости гтк - не замечал =/
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ