1. Python / Говнокод #8627

    −88

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    # класс ЧегоТоТамПарсер(object):
    
        def _get_images(self, soup, basedomain):
            soup = soup.get_soup()
            fb_images = soup.findAll(name="meta", attrs={
                "property": lambda property: property and property.lower() == "og:image"})
            images = (soup.body or soup).findAll(name="img", src=True)
            get_source = lambda img: img.get("content") \
                                        if img.get("content", None) \
                                        else img.get("src") \
                                        if img.get("src").startswith("http://") \
                                        else "http://"+img.get("src").lstrip("/") \
                                        if img.get("src").startswith("//") \
                                        else urljoin("http://"+basedomain, img.get("src").lstrip("/"))
            return list(set(map(get_source, fb_images + images)))
    
        def get_images(self):
            try:
                if self.basedomain:
                    return self._get_images(self.soup, self.basedomain)
                return []
            except URLError:
                return []

    над этим работало коллективное бессознательное

    nelson, 23 Ноября 2011

    Комментарии (75)
  2. Python / Говнокод #8626

    −85

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    TEMPLATES = ( # {'s': 0, 'm': 1, 'l': 2, 'xl': 3, 'xxl': 4}
                    ((1, 0), _("1-z")),      ((1, 1), _("1-z-a")),
                    ((1, 2), _("1-z-a-p1")), ((2, 0), _("2-z")),
                    ((2, 1), _("2-z-a")),    ((2, 2), _("2-z-a-p2")),
                    ((2, 3), _("2-z-a-p3")), ((3, 0), _("3-z")),
                    ((3, 1), _("3-z-a")),    ((3, 2), _("3-z-a-p1")),
                    ((4, 0), _("4-z")),      ((4, 1), _("4-z-a")),
                    ((4, 2), _("4-z-a-p3")), ((4, 3), _("4-z-p3")),
                    ((4, 4), _("4-p3")),)

    это константа из описания класса формы, если кто-то еще не догадался

    nelson, 23 Ноября 2011

    Комментарии (23)
  3. Python / Говнокод #8611

    −100

    1. 1
    2. 2
    3. 3
    4. 4
    class SomeThing(object)
        def _get_value(self):
            return #return some value
        get_value = property(_get_value)

    Декораторы? не не слышал.

    Zapix, 23 Ноября 2011

    Комментарии (5)
  4. Python / Говнокод #8603

    −85

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    def __getattr__(self,name):
            if name == '_creator':
                 return 'Article'
            else:
                 raise AttributeError

    H1D, 22 Ноября 2011

    Комментарии (5)
  5. Python / Говнокод #8476

    −92

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    #! /usr/bin/python3.1
    import tarfile, os, datetime, time
    tudate = datetime.datetime.now()
    tud_date = list(tudate.timetuple())
    day = tud_date[2]; month = tud_date[1]; year = tud_date[0]; dyear = tud_date[7]
    tar_pwd = '/home/fess/Desktop/Server/arch/%d.%d.%d.tar.gz' % (day,month,year)
    pwd_bases = '/home/fess/Desktop/Server/arch'; archives = os.listdir(pwd_bases) # получаем список всех файлов в дирректории
    os.chdir(pwd_bases) # move arround the directory with the bases
    if os.path.exists(tar_pwd): pass # если архив с именем сегоднешней даты есть в папке, то ничего не делает
    else: # в противном случае создает архив            
            tar = tarfile.open(tar_pwd,'w:gz')
            tar.add('/home/fess/Desktop/Server/base/','bases')
            tar.close()
    for archive in archives: # Проверка каждого архива в папке с архивами
            stf = os.stat(archive); dayy = time.localtime(stf.st_mtime).tm_yday; m = dyear-dayy # узнаем дату создания арх и узнаем сколько ему дней (m)
            if m >= 50: # если архиву больше или 50 дней
                    os.remove(archive); print(archive,'was removed')# тогда удаляем архив которому больше 50 дней 
            if dyear < dayy: # Если сегодняшний день меньше чем дата создания файла(т.е. наступил новый год)
                    os.remove(archive); print(archive,'was removed')# удалить 49 оставшихся архивов с прошлого года

    зачетная катяшенция по моему вышла, бэкапчеГ ;)

    fess, 10 Ноября 2011

    Комментарии (16)
  6. Python / Говнокод #8472

    −87

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    # bad, bad SQLAlchemy!        
        def assemble(self, message):
            mdict = message.__dict__.copy()
            self.__dict__.update(mdict)
            
        def disassemble(self, message):
            mdict = message.__dict__.copy()
            instance_state = self.__dict__.get('_sa_instance_state')
            self.__dict__.update(mdict)
            self.__dict__['_sa_instance_state'] = instance_state
        # /bad, bad SQLAlchemy!

    Вот что приходится делать, если надо привязать класс к нескольким таблицам в SQLAlchemy

    Enchantner, 10 Ноября 2011

    Комментарии (6)
  7. Python / Говнокод #8388

    −101

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    def api_login() :
    	url = 'https://api.vk.com/oauth/authorize'
    	
    	values = {
    		'client_id' : '1998533',
    		'response_type' : 'token'
    		}
    	
    	headers = {
    		'User-Agent' : 'Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.9.168 Version/11.51',
    		'Cookie' : 'remixsid=' + sid
    		}
    	
    	try:
    		data = urllib.urlencode(values)
    		req = urllib2.Request(url, data, headers)
    		response = urllib2.urlopen(req)
    		res = response.read()
    		geturl = response.geturl()
    
    		if geturl != url :
    			reg = 'access_token=(.*?)&'
    			rg = re.compile(reg,re.IGNORECASE|re.DOTALL)
    			m = rg.search(geturl)
    			if m:
    				token=m.group(1)
    				print 'API: login'
    				return token
    		else :
    			reg='\?hash=(.*?)&'
    			rg = re.compile(reg,re.IGNORECASE|re.DOTALL)
    			m = rg.search(res)
    			
    			if m:
    				hash = m.group(0)
    				url = 'https://api.vk.com/oauth/grant_access'+hash+'client_id=1998533&redirect_uri=blank.html&response_type=token'
    				
    				req = urllib2.Request(url, '', headers)
    				response = urllib2.urlopen(req)
    				res = response.read()
    				geturl = response.geturl()
    
    				reg = 'access_token=(.*?)&'
    				rg = re.compile(reg,re.IGNORECASE|re.DOTALL)
    				m = rg.search(geturl)
    				if m:
    					token = m.group(1)
    					print 'API: login'
    					return token
    	except Exception, detail:
    		print "Error ", detail
    
    def api(method, values = {}) :
    	url = 'https://api.vk.com/method/' + method + '.json'
    	
    	values.update({'access_token' : token})
    
    	headers = {
    		'User-Agent' : 'Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.9.168 Version/11.51',
    		'Cookie' : 'remixsid=' + sid
    		}
    	
    	try:
    		data = urllib.urlencode(values)
    		req = urllib2.Request(url, data, headers)
    		response = urllib2.urlopen(req)
    		res = response.read()
    		return res
    	except Exception, detail:
    		print "Error ", detail

    anonymouse587658967, 01 Ноября 2011

    Комментарии (4)
  8. Python / Говнокод #8359

    −90

    1. 1
    def mprint(*args): print (reduce(lambda a,b: a+b, [u"{"+str(i)+"} " for i in range(len(args))])).format(*args).encode('utf-8')

    Делает то же самое, что и print, но в правильной кодировке) Еще бы от скобочек избавиться при вызове.

    hakimovis, 30 Октября 2011

    Комментарии (17)
  9. Python / Говнокод #8121

    −92

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    def foobar():
        sev=raw_input("Chislo dvoichnoy sistemy schisleniya: ") # Вводим число с клавиатуры
        lsev=list(sev)
        n=len(lsev)-1
        dec=0
        result=""
        f=[]
        i=1
        if sev <= '000000000000000000000000000000000000000000000000000000000000000000': # Проверка если много нулей
            print "Chislo vosmerichnoy sistemy schisleniya: ",0
            return
        if sev.isdigit()== 0:
            print "vi vveli nivirnyu stroku!" #Возвращает ошибку, если хотя бы 1 символ - не число
            return
        if sev.isalpha() == 1: #Проверка на ввод буквенных значений (True=1) значит есть буква
            print "vi vveli bukvu, a doljni chisla!"
            return
        if sev == '':
            print "vi nichego ne vveli" #Проверка на пустое поле ввода
            return
        else:
            while n>=0:
                if int(lsev[-n-1]) in range(2): # Проверяем, является ли число двоичным
                    dec+=int(lsev[-n-1])*2**(n) # Переводим из двоичной в десятичную
                    n-=1
                else: # Сообщаем об ошибке ввода и прекращаем выполнение
                    print "Vvedennoye chislo ne yavlyayetsya dvoichnym!"
                    return
            while dec>0: # Цикл, создающий список из остатков деления на 8 (перевод в восьмеричную систему)
                f.append(dec%8)
                dec=dec/8
                i+=1
                z=len(f)-1
            while z>=0: # Созданием из списка и печатаем восьмеричное число
                result+=unicode(f[z])
                z-=1
            print "Chislo vosmerichnoy sistemy scisleniya:",result
    foobar()

    Win95, 08 Октября 2011

    Комментарии (39)
  10. Python / Говнокод #8098

    −95

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    def _lang_score(l):
        score = 0
        if l.language in user_langs:
            score += 100
        if l.is_complete:
            score += 100    
        elif l.is_dependent():
            score += l.percent_done
        score += ord('c'.decode('utf-8')) / 10.0    
        return score
    
    def _cmp_langs(a,b):
        return cmp(_lang_score(b), _lang_score(a))

    Функция сравнения для сортировки объектов. Вроде все хорошо, но не понятно зачем 9-я строка.

    alerion, 06 Октября 2011

    Комментарии (11)