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

    −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
    # @models.permalink
        def get_absolute_url(self):
            def urls_r(urlresolver, prefix = ''):
                urllist = []
                urlname = []
                for i in urlresolver:
                    if str(type(i)) == "<class 'django.core.urlresolvers.RegexURLResolver'>":
                        url_return = urls_r(i.url_patterns, i.regex.pattern)
                        urllist += url_return[0]
                        urlname += url_return[1]
                    else:
                        urllist.append(prefix + i.regex.pattern[1:])
                        urlname.append(i.name)
                return urllist, urlname
    
            from bizon.urls import urlpatterns
            from code.core.urls import code
    
            urllist, urlname = urls_r(urlpatterns)
    
            url = ''
            try:
                url = urllist[urlname.index('news_show')]
            except:
                print sys.exc_info()
    
            absolute_url = url.replace('^', '/').replace('(%s)' %code, '%s').replace('(\\d+)', '%d').replace('$', '') %(self.language, self.pk)
            return absolute_url

    сюрпризы в коде проектов от бывших коллег, феерией было видеть рядом с этим кодом маленькую функцию:
    def get_link(self):
    return '/ru/news/information/new/%d/' % (self.id)

    Запостил: oxymoron42, 09 Июня 2014

    Комментарии (4) RSS

    • > феерией было видеть рядом с этим кодом маленькую функцию

      это все было вступлением, а самое интересное - в сноске
      Ответить
    • >str(type(i)) == "<class django.core.urlresolvers.RegexURLResolve r'>"
      Охблядь.
      Ответить
      • except:
        print sys.exc_info()

        Это нахуя? В джанге нет нормального логгера исключений?
        Ответить
        • Есть, конечно же. Просто автор этого legacy-кода не может в исключения по-хорошему.
          Ответить

    Добавить комментарий