Форум сайта python.su
def Opener(self, url, headers, post=None, proxy=None, timeout=None):
socket.setdefaulttimeout(timeout)
upars = urlparse.urlparse(url)
self.headers['Host']= upars.netloc
if proxy:
proxy_handler = urllib2.ProxyHandler({'http':proxy})
opener = urllib2.build_opener(proxy_handler)
urllib2.install_opener(opener)
socket.setdefaulttimeout(self._Setting.proxy['TimeOut'])
if post:
post = urllib.urlencode(post)
req = urllib2.Request(url, post, headers)
try:
conn = urllib2.urlopen(req)
html, info = conn.read(), conn.info()
if html
return(html, info)
else: return False
except:
return False
def Worker(self):
while not self.proxylist.empty():
try: prox = self.proxylist.get()
except: prox = False
if prox:
curentproxy = prox.split(':')[0]
scripthtml = self.Opener(url='http://site1.ru/', headers=self.headers, post = {'zpost':'zpost'}, proxy = prox)
if scripthtml:
kthtml = self.Opener(url='http://site2.ru/', headers=self.headers, post = None, proxy=prox, timeout=20)
if kthtml:
self.htmlForParse.put_nowait((prox, scripthtml[0], kthtml[0]))
self.proxylist.task_done()
time.sleep(0.1)
def Start(self):
for x in xrange(500):
p = threading.Thread(target = self.Worker)
p.setName('Worker' + str(x))
p.start()
self.proxylist.join()
import thread
tread.start_new_thread(self.long, ())
class Item(models.Model):
name = models.CharField(_('Name'), max_length=200)
points = models.IntegerField(_('Points'), default=0)
cluster = models.ForeignKey(Cluster, verbose_name=_('Cluster'))
costumerservice = models.BooleanField(_('Customer Service'), blank=True, default=False)
class Meta:
verbose_name = _('Item')
verbose_name_plural = _('Items')
def __unicode__(self):
return u'%s (%d points)' % (self.name, self.points)
class Report(models.Model):
user = models.ForeignKey(User)
date = models.DateTimeField(_('Date'), default=datetime.now())
country = models.ForeignKey(Country)
publication = models.BooleanField(_('Publication'), blank=True, default=False)
total = models.IntegerField(default=0)
class Meta:
verbose_name = _('Report')
verbose_name_plural = _('Reports')
def cluster_name(self):
return self.country.cluster
def __unicode__(self):
return self.country.country
def save(self, *args, **kwargs):
self.total = 0
for report_item in ReportItem.objects.filter(report=self):
self.total += report_item.item.points * report_item.total
reports = Report.objects.filter(country=self.country, publication=True).all()
super(Report, self).save(*args, **kwargs)
class ReportItem(models.Model):
item = models.ForeignKey(Item)
total = models.IntegerField(default=0)
report = models.ForeignKey(Report, related_name='items', verbose_name=_('Report Item'))
class Illustration(models.Model):
class Meta:
verbose_name_plural = 'иллюстрации'
verbose_name = 'иллюстрация'
verbose_name_addition = 'иллюстрацию'
templates = dict(
map(lambda template: (template.__name__, template),
IllustrationTemplate.__subclasses__())
)
template_name = models.CharField(
max_length = 16,
choices = map(lambda template: (template.__name__, template.verbose_name), templates.values())
)
material_type = models.ForeignKey(ContentType)
material_id = models.PositiveIntegerField()
material = generic.GenericForeignKey('material_type', 'material_id')
title = models.CharField(max_length = 256)
width = models.PositiveSmallIntegerField()
height = models.PositiveSmallIntegerField()
image = models.ImageField(width_field = 'width', height_field = 'height', upload_to = settings.ILLUSTRATIONS_PATH)
illustrations = generic.GenericRelation('Illustration')
ImproperlyConfigured at /admin/
'ArticleAdmin.fieldsets' refers to field ‘illustrations’ that is missing from the form.
textEdit = QtGui.QTextEdit()
comboSources = self.getSources()
comboModule = self.getModules()
comboPartitions = self.getPartitions()
comboType = self.getTypes()
filds = QtGui.QStackedWidget()
firstFilds = QtGui.QWidget()
layout1 = QtGui.QGridLayout()
layout1.addWidget(varchar20,0,0)
layout1.addWidget(QtGui.QLabel('Name'),0,1)
layout1.addWidget(textEdit,1,0)
layout1.addWidget(QtGui.QLabel('Description'),1,1)
layout1.addWidget(textEdit,2,0)
layout1.addWidget(QtGui.QLabel('Code'),2,1)
layout1.addWidget(comboModule,3,0)
layout1.addWidget(QtGui.QLabel('Module'),3,1)
layout1.addWidget(comboSources,4,0)
layout1.addWidget(QtGui.QLabel('Source'),4,1)
firstFilds.setLayout(layout1)
secondFilds = QtGui.QWidget()
layout1 = QtGui.QGridLayout()
layout1.addWidget(varchar40,0,0)
layout1.addWidget(QtGui.QLabel('Name'),0,1)
layout1.addWidget(varchar40,1,0)
layout1.addWidget(QtGui.QLabel('Description'),1,1)
layout1.addWidget(comboType,2,0)
layout1.addWidget(QtGui.QLabel('Type'),2,1)
layout1.addWidget(varchar40,3,0)
layout1.addWidget(QtGui.QLabel('Address'),3,1)
secondFilds.setLayout(layout1)
thirdFilds = QtGui.QWidget()
layout1 = QtGui.QGridLayout()
layout1.addWidget(varchar20,0,0)
layout1.addWidget(QtGui.QLabel('Name'),0,1)
layout1.addWidget(textEdit,1,0)
layout1.addWidget(QtGui.QLabel('Description'),1,1)
layout1.addWidget(comboPartitions,2,0)
layout1.addWidget(QtGui.QLabel('Partition'),2,1)
thirdFilds.setLayout(layout1)
filds.addWidget(firstFilds)
filds.addWidget(secondFilds)
filds.addWidget(thirdFilds)
tables = QtGui.QComboBox()
tables.addItem('Examples')
tables.addItem('Sources')
tables.addItem('Modules')
filds = self.createFilds()
tables.currentIndexChanged.connect(filds.setCurrentIndex)
gb = QtGui.QWidget()
layout1=QtGui.QGridLayout()
layout1.addWidget(okButton,6,1)
layout1.addWidget(cancelButton,6,2)
layout1.addWidget(tables,6,0)
layout1.addWidget(filds,0,6,6,2)
gb.setLayout(layout1)
self.setCentralWidget(gb)