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

    −179

    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 mac_search(*args):
        db = MySQLdb.connect(host="localhost",user="test",passwd="test",db="test")
        cursor = db.cursor()
        cursor.execute('SELECT * FROM ip_groups WHERE mac="%s" AND is_deleted=0;' %args[0].split()[0])
        for j in cursor.fetchall():
            cursor.execute("SELECT * FROM iptraffic_service_links WHERE ip_group_id=%s and is_deleted=0;" %j[1])
            for j1 in cursor.fetchall():
                cursor.execute("SELECT * FROM service_links WHERE id=%s AND is_deleted=0;" %j1[0])
                for j2 in cursor.fetchall():
                    cursor.execute("SELECT * FROM accounts WHERE is_deleted=0 AND id=%s AND is_blocked=0;" %j2[2])
                    for j3 in cursor.fetchall():
                        cursor.execute("SELECT * FROM service_links WHERE account_id=%s AND is_deleted=0;" %j2[2])
                        for j4 in cursor.fetchall():
                            if j4[3]==465 or j4[3]==641:
                                cursor.execute("SELECT * FROM s_multicast WHERE service_id=%s AND %s>=ip_start AND %s<=ip_end;" %(j4[3],args[0].split()[1],args[0].split()[1]))
                                for j5 in cursor.fetchall():
                                    return j5

    Я конечно понимаю, таким уже не удивить. Но все же.

    http://www.python.su/forum/viewtopic.php?pid=76855

    cutwater, 14 Сентября 2011

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

    −90

    1. 1
    2. 2
    def removeDuplicate(store):
        return [x for x in store if x not in locals()['_[1]']]

    Удаление дубликатов в списке, set(store) религия не позволила сделать:)

    morpheuz, 13 Сентября 2011

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

    −85

    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
    def captions_and_translations_to_srt(captions_and_translations):
        output = StringIO.StringIO()
        for i in range(len(captions_and_translations)):
            translation_to_srt(captions_and_translations[i][1],
                               captions_and_translations[i][0],
                               i, output)
        srt = output.getvalue()
        output.close()
        return srt
    
    def translation_to_srt(translation, video_caption, index, output):
        subtitle_to_srt_impl(video_caption.caption_text if translation is None \
                             else translation.translation_text, 
                             video_caption, index, output)
    
    def subtitle_to_srt_impl(text, video_caption, index, output):
        output.write(str(index + 1))
        output.write("\n")
        write_srt_time_line(video_caption, output)
        output.write(text)
        output.write("\n\n")
    
    def write_srt_time_line(video_caption, output):
        write_srt_time(video_caption.start_time, output)
        output.write(" --> ")
        write_srt_time(video_caption.end_time, output)
        output.write("\n")
    
    def write_srt_time(seconds, output):
        seconds_int = int(seconds)
        write_padded_num((seconds_int / 3600) % 60, 2, output)
        output.write(":")
        write_padded_num((seconds_int / 60) % 60, 2, output)
        output.write(":")
        write_padded_num(seconds_int % 60, 2, output)
        output.write(",")
        write_padded_num(int(seconds * 1000) % 1000, 3, output)
    
    def write_padded_num(num, numchars, output):
        strnum = str(num)
        numzeros = numchars - len(strnum)
        for i in range(numzeros):
            output.write("0")
        output.write(strnum)

    Генератор SRT субтитров.

    alerion, 08 Сентября 2011

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

    −182

    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
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    HOME_DIR = "/home/user"
    
    LAST_DIR = HOME_DIR + "/.habralast"
    HTML_DIR = HOME_DIR + "/.habr.html"
    SHOW_FIRST_TIME = 5
    n = 1
    new_addr = 0
    count = 0
    
    if os.path.isfile(LAST_DIR):
    	fp = open(LAST_DIR, "r")
    	topic1 = fp.readline()
    	fp.close()
    	last_existed = 1
    else:
    	fp = open(LAST_DIR, "w")
    	topic1 = ""
    	fp.close()
    	last_existed = 0
    
    while(1):
    	if n == 1:
    		url = "habrahabr.ru"
    	else: url = "habrahabr.ru/page" + str(n) + "/"
    	wget = "wget " + url + " -O " + HTML_DIR
    	try:
    		os.system(wget)
    	except:
    		print "Cannot connect to server"
    		sys.exit()
    
    	index = open(HTML_DIR, "r")
    	s = '				  <a href="http://habrahabr.ru/'
    	ss = '						<a'
    	sss = '			<div class="published"><!-- Дата в формате ISO пихается в title -->'
    
    	for i in range(2000):
    		line = index.readline()
    		if s in line:
    			blog_s = line.find('">')
    			blog_e = line.find("</a>")
    			blog = line[blog_s+2:blog_e]
    
    			for j in range(50):
    				line = index.readline()
    				if ss in line:
    					topic_s = line.find('">')
    					topic_e = line.find("</a>")
    					topic = line[topic_s+2:topic_e]
    					if topic.find("</span>") != -1:
    						topic = topic[topic.find("</span>")+7:]
    					if topic != topic1:
    						if new_addr == 0:
    							fp = open(LAST_DIR, "w")
    							fp.write(topic)
    							fp.close()
    							new_addr = 1
    						print "Blog:\t" + blog
    						print "Topic:\t" + topic
    
    						for k in range(100):
    							line = index.readline()
    							if sss in line:
    								line = index.readline()
    								time_s = line.find("<span>")
    								time_e = line.find("</span>")
    								date = line[time_s+6:time_e]
    								print "Date:\t" + date + "\n"
    								notify = "notify-send 'Habrahabr.ru: " + blog + "' '" + topic + "\n<i>" + date + "</i>'"
    								os.system(notify)
    								count += 1
    								if count == SHOW_FIRST_TIME and last_existed == 0:
    									os.system("rm -f " + HTML_DIR)
    									sys.exit()
    								break
    						break
    					else:
    						os.system("rm -f " + HTML_DIR)
    						sys.exit()
    	n += 1
    	index.close()

    http://habrahabr.ru/blogs/python/127806/
    Мне нравится, когда программа/код полностью своя… понимаешь назначение каждой буквы и почему решение именно такое. В данном топике хочу предложить свой парсер топиков Хабрахабра на Python без сторонних библиотек.
    При появлении нового топика — всплывающее окошко сообщает об этом.

    alexoy, 05 Сентября 2011

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

    −181

    1. 1
    d = dialog.Dialog(dialog = "dialog")

    Ехал Грека через реку

    _test, 02 Сентября 2011

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

    −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
    13. 13
    14. 14
    15. 15
    def delta( listToDelta ):
      result = []
      lastItem = listToDelta[0]
      for i, item in enumerate(listToDelta):
        if i == 0:
          result.append(item)
        else:
          result.append(item-lastItem)
        lastItem = item
      return result
    
    l = [2, 4, 6, 9, 7]
    print(l)
    l = delta(l)
    print(l)

    Всеми любимый Дениска (автор некоторых прошлых ГК на питоне) пошёл на поправку и написал не такое вонючее говно.
    Комментировать код до сих пор отказывается, но зато стал выбирать имена для переменных получше.

    Fai, 30 Августа 2011

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

    −85

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    m = 1
    for i in range(100):
      for j in range(100):
        for k in range(100):
          m *= i*j*k
    #Почему m = 0?

    Ещё один перл автора 7568 и 7545

    Fai, 29 Августа 2011

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

    −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
    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
    #-----------view:
    
    
    def catalog(request):
    	subcatalog_list = SubCatalog.objects.all().order_by('index')
    	objects_list = Object.objects.all().order_by('subcatalog')
    	t = loader.get_template('catalog.html')
    	c = RequestContext(request, {
        	'subcatalog_list': subcatalog_list,
        	'objects_list': objects_list,
        })
    	return HttpResponse(t.render(c))
    
    
    #-----------template:
    		{% if subcatalog_list %}
        		{% for subcatalog in subcatalog_list %}
        			<div class="section_name clear">{{ subcatalog.name }}</div>
    				<div class="clear"></div>
    				{% if objects_list %}
        				{% for obj in objects_list %}
        					{% if obj.subcatalog.id == subcatalog.id %}
    						<div class="section">
    							<a class="clear" href="{{ obj.link }}/">{{ obj.name }}</a>
    							{% if obj.description %}
    							<div class="description">{{ obj.description|safe }}</div>
    							{% endif %}
    						{% if forloop.counter0|divisibleby:3 %} 
    						{% endif %}
    	    				{% endif %}
        				{% endfor %}
    				{% else %} 
        				<h2>No objects available.</h2>
        			{% endif %}
        		{% endfor %}
        	{% else %}
        		<h1>No subcatalogs available.</h1>
        	{% endif %}
    
    
    #-------И еще печенька напоследок:
    <a onclick="window.location = '/create/' + {{ subcatalog.id }} + '/'"></a>

    Django

    дико, дико.

    alexeypav, 28 Августа 2011

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

    −97

    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
    i = 0
    t = 12
    r = 0
    g = 0
    while r!=1:
    	i = i + 1
    	if t%i==0:
    		g = g + 1
    	if i==5000:
    		print t, ' - ',g
    		i, g = 0, 0
    		t = t + 1
    	if t==203:
    		r = 1

    Нахождение дилителей.

    Вот так-вот, человек видимо на любит юзать цикл for=)

    KATAJIU3ATOP, 24 Августа 2011

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

    −86

    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
    #Ханойские башни, для ручного решения.
    
    start = [3,2,1]
    a, b, c = [s for s in start], [], []
    
    def printTower( n ):
      s = ''
      if n.lower() == 'a':
        s = a
      elif n.lower() == 'b':
        s = b
      elif n.lower() == 'c':
        s = c
      else:
        raise
      print(n.upper()+':',s)
    
    def printTowers():
      printTower('a')
      printTower('b')
      printTower('c')
    
    def getLast( n ):
      if n.lower() == 'a':
        return 1000 if len(a)==0 else a[-1]
      elif n.lower() == 'b':
        return 1000 if len(b)==0 else b[-1]
      elif n.lower() == 'c':
        return 1000 if len(c)==0 else c[-1]
      else:
        raise
    
    def getTower( n ):
      if n.lower() == 'a':
        return a
      elif n.lower() == 'b':
        return b
      elif n.lower() == 'c':
        return c
      else:
        raise
    
    def moveTower():
      fromP = input('С какой башни двигать?').lower()
      toP = input('На какую башню двигать?').lower()
      lastF = getLast(fromP)
      lastT = getLast(toP)
      if lastT>lastF:
        getTower(toP).append(getTower(fromP).pop())
      else:
        raise
      printTowers()
    
    printTowers()
    
    while b!=start:
      moveTower()

    Принял слабого снотворного и сел читать Корнилова (Программирование шахмат и других логических игр) (думал быстро усну, книга очень скучная).
    Когда пришёл в себя увидел на экране ЭТО.
    P.S. Оно работает.

    Fai, 23 Августа 2011

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