1. Список говнокодов пользователя kyzi007

    Всего: 128

  2. Python / Говнокод #21478

    −16

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    me = os.path.basename(sys.argv[0])
    ...
    target = me.split('-')
    ..
    myclass = "%sCLI" % sub.capitalize()
    mycli = getattr(__import__("ansible.cli.%s" % sub, fromlist=[myclass]), myclass)

    Из рублики "удивительное рядом"
    Как вы файлик назовете, такой код он и вызовет.
    Ансибля

    kyzi007, 18 Октября 2016

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

    −22

    1. 1
    2. 2
    def group_by_first(objs, keyfun):
        return map(lambda x: x[0], dict(map(lambda key: (key, filter(lambda obj: keyfun(obj) == key, objs)), set(map(keyfun, objs)))).values())

    kyzi007, 03 Октября 2016

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

    −31

    1. 1
    2. 2
    3. 3
    4. 4
    index = re.findall('%s([\s]*[\w\d-]+[\s]*[\w\d-]*)' % self.vendor, string)
    if not index:
        index = re.findall('([\s]*[\w\d-]+[\s]*[\w\d-]*[\s]*[\w\d-]*)', string)
    return filter(lambda x: len(x) > 3 and re.findall('\d', x), map(lambda x: x.replace(' ', '').replace('-', ''), index)) or [u'none']

    Сижу, перед уходом свой код документирую. В изумлении сижу, да.

    kyzi007, 30 Июня 2016

    Комментарии (12)
  5. JavaScript / Говнокод #19839

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    var pricerawjson = "%7B%22price%22%3A%226973.00%22%2C%22status%22%3A%22active%22%2C%22sell_status%22%3A%22available%22%2C%22old_price%22%3A%227607.0000%22%2C%22price_formatted%22%3A%226%20973%22%2C%22old_price_formatted%22%3A%227%20607%22%7D";
    if (pricerawjson.length == 0) {
          pricerawjson = '%7B%22price%22%3A%226973%22%2C%22price_formatted%22%3A%226%20973%22%2C%22old_price%22%3A7607%2C%22old_price_formatted%22%3A%227%20607%22%2C%22status%22%3A%22active%22%2C%22sell_status%22%3A%22available%22%7D';
    }

    kyzi007, 18 Апреля 2016

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

    −11

    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
    def number_to_text(number):
        """this function convert numbers to text for numbers 0 <= X < 1000 """
        if number <= 0:
            return ""
        elif number <= 9:
            return FIRST_TEN[number-1]
        elif number<=19:
            return SECOND_TEN[number-10]
        elif number<=99:
            return OTHER_TENS[number/10-2]
        elif number >= 100:
            return HUNDRED
        else:
            return ""
    def checkio(number):
        result = ""
        order = 10 ** (len(str(number))-1)
        if number < 20:   # it's if not good idea. but....
            result = number_to_text(number)
            return result
        # loop below expand number to list of tuple: (digit, order)
        number_list = []    
        while number / order != 0:
            number_list.append(((int(number/order)),(int(order)))) 
            number -= (number / int(order)) * order
            order = order /10.0
        result_list = []
        # and now start algorithmic nightmare. Its must be rewrite!!!
        for item in number_list:
            if item[1] >= 100:
                hundred = [number_to_text(num) for num in item]
                result_list += hundred    
            elif item[1] == 10:
                if item[0] <> 1 :
                    result_list += [number_to_text(item[0]*item[1])]
                else:
                    next_item = number_list[(len(number_list))-number_list.index(item)]
                    next_item = (next_item[0]+10, next_item[1])
                    number_list[(len(number_list))-number_list.index(item)] = next_item
                    
            else:
                result_list += [number_to_text(item[0])]
                
        result_list = [x for x in result_list if x != '']        
        result =  " ".join(result_list)   
        return result

    Ну и мое кракозябро решение (надо цифру в строку)

    def checkio(number):
    num1, num2, num3 = map(lambda x: int(x), '0' * (3 - len(str(number))) + str(number))
    res = ('%s %s %s' % (FIRST_TEN[num1] + HUNDRED if FIRST_TEN[num1] else '',
    SECOND_TEN[num3] if num2 == 1 else OTHER_TENS[num2],
    FIRST_TEN[num3] if num2 != 1 else '')).replace(' ', ' ').strip()
    return res

    kyzi007, 13 Сентября 2015

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

    −11

    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
    def checkio(number):
        str_num = ""
        lst = list(str(number))
        if len(lst) == 1:
            str_num = FIRST_TEN[int(lst[0])-1]
        if len(lst) == 2:
            if int(lst[0]) == 1:
                str_num = SECOND_TEN[int(lst[1])]
            elif int(lst[0]) > 1:
                if int(lst[1]) == 0:
                    str_num = OTHER_TENS[int(lst[0]) - 2]
                elif int(lst[1]) > 0:
                    str_num = OTHER_TENS[int(lst[0]) - 2] + ' ' + FIRST_TEN[int(lst[1])-1]
        if len(lst) == 3:
            if int(lst[1]) == 0:
                if int(lst[2]) == 0:
                    str_num = FIRST_TEN[int(lst[0])-1] + ' ' + HUNDRED
                elif int(lst[2]) > 0:
                    str_num = FIRST_TEN[int(lst[0])-1] + ' ' + HUNDRED + ' ' + FIRST_TEN[int(lst[2])-1]
            elif int(lst[1]) == 1:
                str_num = FIRST_TEN[int(lst[0])-1] + ' ' + HUNDRED + ' ' + SECOND_TEN[int(lst[2])]
            elif int(lst[1]) > 1:
                if int(lst[2]) == 0:
                    str_num = FIRST_TEN[int(lst[0])-1] + ' ' + HUNDRED + ' ' + OTHER_TENS[int(lst[1]) - 2]
                elif int(lst[2]) > 0:
                    str_num = FIRST_TEN[int(lst[0])-1] + ' ' + HUNDRED + ' ' + OTHER_TENS[int(lst[1]) - 2] + ' ' + FIRST_TEN[int(lst[2])-1]

    checkio просто кладезь

    kyzi007, 13 Сентября 2015

    Комментарии (1)
  8. ActionScript / Говнокод #18575

    +424

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    var t:Timer=new Timer(2570303000);//1 месяц в мс
    t.addEventListener(TimerEvent.TIMER,onTimer);
    t.start();
    function onTimer(e:TimerEvent) {
    trace("-----");
    }

    Товарищ спрашивает в сообществе - и чего же этот код работать отказывается?

    kyzi007, 05 Августа 2015

    Комментарии (13)
  9. JavaScript / Говнокод #18387

    +142

    1. 1
    2. 2
    3. 3
    var _0xdb2a=["","\x6A\x6F\x69\x6E","\x72\x65\x76\x65\x72\x73\x65","\x73\x70\x6C\x69\x74"];
    function getCoo2(_0x733fx2,_0x733fx3){
        return _0x733fx2[_0xdb2a[3]](_0xdb2a[0])[_0xdb2a[2]]()[_0xdb2a[1]](_0xdb2a[0])+_0x733fx3}

    Чтобы жизнь маслом ботоводам не казалась. Вот вам загадочка - что здесь происходит?

    kyzi007, 23 Июня 2015

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

    −126

    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
    def price_request(self, response):
        # ебануцо
        t = TakeFirst()
        magic_data = {'__ASYNCPOST': 'true'}
    
        # --- забираю зашитые данные из форм
        keys = [
            '__BOOKMARKERbmTabs',
            '__VIEWSTATE',
            '__VIEWSTATEGENERATOR',
            '__EVENTVALIDATION',
            'HiddenField'
        ]
        for k in keys:
            val = response.xpath('//input[contains(@id, "%s")]/@value' % k).extract()
            key = response.xpath('//input[contains(@id, "%s")]/@name' % k).extract()
            if key:
                magic_data[t(key)] = t(val) or ''
    
        val = response.xpath('//input[contains(@value, "btnGetPrice")]/@value').extract()
        key = response.xpath('//input[contains(@value, "btnGetPrice")]/@name').extract()
        if key:
            magic_data[t(key)] = t(val) or ''
    
        # --- неведомая херня из js
        # вызов получения цены
        js = response.xpath(u'//script[contains(text(), "$(document).ready(function ()")][contains(text(), "__doPostBack")]').re(
            "__doPostBack\('([^']+)','([^']*)'\)")
        # [\$\w0]+btnGetPrice
        magic_data['__EVENTTARGET'] = js[0]
        # обычно ''
        magic_data['__EVENTARGUMENT'] = js[1]
    
        # ключ от сервера, скорее всего он связан с сессией
        js = response.xpath(u'//script[contains(text(), "Sys.Application.setServerId")]').re('\("([^"]+)", "([^"]*)"\)')
        super_magic_key = js[1]
    
        # --- опять данные из формы которые туда должны при ините странице соваться
        js = response.xpath(u'//script[contains(text(), "Sys.WebForms.PageRequestManager._initialize")]').re("'form1', \[([^\]]+)\]")[0]
        super_magic_values = re.findall("'([^']+)'", js)
        super_magic_value_1 = super_magic_values[0]
    
        for m in super_magic_values[1:len(super_magic_values)]:
            if m:
                magic_data[m] = ''
    
        # хер его знает почему, но первую букву надо откусить, обычно это t
        super_magic_value1 = super_magic_value_1[1:len(super_magic_value_1)]
    
        # составное значение вида [\$\w0]+=[\$\w0]+$updPrice|[\$\w0]+btnGetPrice
        magic_data[super_magic_key] = super_magic_value1 + '|' + magic_data['__EVENTTARGET']
    
        return FormRequest(url=response.url,
                           formdata=magic_data,
                           dont_filter=True,
                           meta=response.meta,
                           callback=self.parse_price,
                           method='post',
                           headers={'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
                                    'X-Requested-With': 'XMLHttpRequest',
                                    'X-MicrosoftAjax': 'Delta=true',
                                    'Origin': 'http://www.exist.ru',
                                    'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate',
                                    'User-Agent': 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-gb) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27'
                           })

    То что случается если жалко ресурсов на запуск js при парсинге )

    kyzi007, 09 Июня 2015

    Комментарии (57)
  11. ActionScript / Говнокод #17938

    −162

    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
    private function parse (val : String) : Object {
        while (val.indexOf(' ') != -1) {
            val = val.replace(' ', '')
        }
        if (val.indexOf(',') != -1) {
            var params : Array = val.split(',')
            if (params[0] != 'auto') {
                params[0] = [parseInt(params[0]), /(px|%)/.exec(params[0][1])]
            }
            if (params[1] != 'auto') {
                params[1] = [parseInt(params[1]), /(px|%)/.exec(params[1])[1]]
            }
            return params
    
        } else if (val == 'contain' || val == 'cover') {
            return val
        }
        return null
    }

    Да блять, я не осилила разобрать строку типа "10px,auto"

    kyzi007, 05 Апреля 2015

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