1. Perl / Говнокод #11547

    −139

    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
    #!/usr/bin/perl -w
    
    use strict;
    use warnings;
    use diagnostics;
    use LWP::Simple;
    
    binmode(STDOUT, ":utf8");
    
    my $url = 'http://govnokod.ru/comments';
    my $document = get $url;  die "Couldn't get $url" unless defined $document;
    $document =~ s/\n/ /g;
    $document =~ s/\h+/ /g;
    my @arr = ( $document =~ m/(?<=\<strong class="entry-author">)(.*?)(?<=\<a class="answer")/gi );
    my $str;
    my @sink;
    
    foreach my $val (@arr) {
    	$val =~ m/(?<=\>)(.*?)(?=\<\/a\>)/i;
    	$str = "Author:    ".$1;
    	$val =~ m/(?<=published" title\=")(.*?)(?=")/i;
    	( my $dt, my $tm ) = split('T', $1);
    	$str = $str . "\nDate:      " . $dt;
    	$str = $str . "\nTime:      " . $tm;
    	$val =~ m/(?<=\<\/abbr\> \<a href\=")(.*?)(?=" name\=)/i;
    	$str = $str."\nLink:      ". $1;
    	$val =~ m/(?<=\<div class\="entry-comment">)(.*?)(?=\<\/div\>)/i;
    	$str = $str . "\nComment:   " . str_formater($1);
    	push(@sink, $str);
    }
    
    @sink = reverse (@sink);
    foreach my $v (@sink) {
    	print ("\n".("+" x 81)."\n"."$v\n");
    }
    print ("\n".("+" x 81)."\n\n");
    
    sub str_formater {
    	my $str = $_[0];
    	my $res="";
    	my $cmt_len = 69;
    	my $cmt_indent = 11;
    	while (1) {
    		if (length($str)<=$cmt_len) {
    			return $res . $str;
    		}
    		$res = $res . substr($str,0, $cmt_len) . "\n" . (" " x $cmt_indent);
    		$str = substr($str, $cmt_len);
    	}
    	return $res;
    }
    exit 0;

    Давненько перловку не заваривал...

    sayidandrtfm, 06 Августа 2012

    Комментарии (17)
  2. Perl / Говнокод #11489

    −136

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    sub parse_http_date($)
    {
    	my ($date)=@_;
    	my %months=(Jan=>0,Feb=>1,Mar=>2,Apr=>3,May=>4,Jun=>5,Jul=>6,Aug=>7,Sep=>8,Oct=>9,Nov=>10,Dec=>11);
    
    	if($date=~/^[SMTWF][a-z][a-z], (\d\d) ([JFMASOND][a-z][a-z]) (\d\d\d\d) (\d\d):(\d\d):(\d\d) GMT$/)
    	{ return eval { timegm($6,$5,$4,$1,$months{$2},$3-1900) } }
    
    	return undef;
    }

    Вакаба.

    7ion, 28 Июля 2012

    Комментарии (3)
  3. Perl / Говнокод #11467

    −133

    1. 1
    return { map { $_ => $domain->$_ } qw( name ) };

    Мини-говнокодик. Ради одного имени наворотили map.

    ichesnokov, 23 Июля 2012

    Комментарии (1)
  4. Perl / Говнокод #11366

    −125

    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
    if ($f_ISSUE_DATE !~ /^\d\d.\d\d.\d\d\d\d/ && $f_ISSUE_DATE){
                    $e_ISSUE_DATE = 'Дата выдачи паспорта вводится в формате "ДД.ММ.ГГГГ"';
                    $errorCounter ++;
            }
            if ($f_ADDRESS_OF_SVC_SHOP !~ /^(\w+)\s+(.+?),\s*(ул\.)\s*(.*)$/ &&
            $f_ADDRESS_OF_SVC_SHOP !~ /^(\w+)\s+(.+?),\s*(бул\.)\s*(.*)$/ &&
            $f_ADDRESS_OF_SVC_SHOP !~ /^(\w+)\s+(.+?),\s*(наб\.)\s*(.*)$/ &&
            $f_ADDRESS_OF_SVC_SHOP !~ /^(\w+)\s+(.+?),\s*(пер\.)\s*(.*)$/ &&
            $f_ADDRESS_OF_SVC_SHOP !~ /^(\w+)\s+(.+?),\s*(пл\.)\s*(.*)$/ &&
            $f_ADDRESS_OF_SVC_SHOP !~ /^(\w+)\s+(.+?),\s*(пр\.)\s*(.*)$/ &&
            $f_ADDRESS_OF_SVC_SHOP !~ /^(\w+)\s+(.+?),\s*(просп\.)\s*(.*)$/ &&
            $f_ADDRESS_OF_SVC_SHOP !~ /^(\w+)\s+(.+?),\s*(шоссе)\s*(.*)$/ &&
            $f_ADDRESS_OF_SVC_SHOP !~ /^(\w+)\s+(.+?),\s*()\s*(.*)$/)        {
                    $e_ADDRESS_OF_SVC_SHOP = 'Неправильный формат фактического адреса';
                    $errorCounter ++;
            }

    Ебаный стыд!!!
    скопипасчено из попавшегося куска "исподников", идет прям подряд.
    Уж даже и не знаю - что больший пиздец - первая часть или вторая.

    PS. Для тех кто вел себя хорого - конфетка!
    ВЕСЬ, БЛЯДЬ, проект постоен без единого гвозьдя!!! НИ ОДИН объект не пострадал!!!

    Meettya, 05 Июля 2012

    Комментарии (17)
  5. Perl / Говнокод #11275

    −125

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    > cat 1.pl
    $owner = "Jack";
    print "This is $owner\n";
    print "This is $owner's house\n";
    >  perl 1.pl
    This is Jack
    This is  house

    The old package delimiter was a single quote, but double colon is now the preferred delimiter, in part because it's more readable to humans, and in part because it's more readable to emacs macros. It also makes C++ programmers feel like they know what's going on--as opposed to using the single quote as separator, which was there to make Ada programmers feel like they knew what was going on. Because the old-fashioned syntax is still supported for backwards compatibility, if you try to use a string like "This is $owner's house" , you'll be accessing $owner::s ; that is, the $s variable in package owner , which is probably not what you meant. Use braces to disambiguate, as in "This is ${owner}'s house" .

    bormand, 21 Июня 2012

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

    −104

    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
    if ($key eq $default_key){
    		my $author = $default_author;
    		if ($release){
    			if (length $release <= $max_release){
    				if (length $description <= $max_description){			
    					if ($filename){
    						if (clearfn(\$filename) eq 1){
    							if (! -e "$files_dir/$filename"){
    								$release = clear($release);
    								$description = clear($description);
    								$description = bb($description);
    								open FILE, '>>db.txt' or die $!;
    								print FILE "$release\t$filename\t$description\t$author\t" . ftime() . "\n";
    								close FILE;
    								open FILE, ">$files_dir/$filename" or die "$!";
    								binmode FILE;
    								while (<$filehandle>){
    									print FILE;
    								}
    								close FILE;
    								$result = 'Файл успешно добавлен!';
    								rss();
    							}
    							else {
    								$result = 'Ошибка: Файл с таким именем уже загружен!';
    							}
    						}
    						else {
    							$result = 'Ошибка: Недопустимое расширение файла!';
    						}
    					}
    					else {
    						$result = 'Ошибка: Нет файла!';
    					}
    				}
    				else {
    					$result = "Ошибка: В описании должно быть не более $max_description символов!";
    				}
    			}
    			else {
    				$result = "Ошибка: В названии должно быть не более $max_release символов!";
    			}
    		}
    		else {
    			$result = 'Ошибка: Нет названия!';
    		}
    	}
    	else {
    		$result = 'Ошибка: ';
    	}

    Писал паскалеребенок

    nyaknyan, 14 Июня 2012

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

    −122

    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
    #!/usr/bin/perl
    use strict;
    
    # немного настроек
    my $url = "http://govnokod.ru/comments";
    my $min_delay = 2*60;
    my $max_delay = 30*60;
    my $delay_slowdown = 2;
    
    # получение идентификатора последнего коммента
    sub get_last_comment_info {
        print STDERR "Checking for the new comments...\n";
        my @content = `curl "$url" 2>/dev/null`;
        my $s = join(' ', @content);
        if ($s =~ /<a href=".*?\/(\d+)#comment(\d+)"/) {
            print STDERR "Last comment id was $2 in the thread $1\n";
            return ("thread" => $1, "comment" => $2);
        }
        print "Can't get new comments\n";
        return ();
    }
    
    # отправка сообщения
    sub notify {
        my ($id) = @_;
        print STDERR "Sending notify about $id\n";
        `notify-send "Кто-то наложил в $id"`;
    }
    
    my $last_id = undef;
    my $delay = $min_delay;
    while (1) {
        # смотрим есть ли новый коммент
        if (my %r = get_last_comment_info()) {
            if (defined($last_id) && $r{"comment"} > $last_id) {
                $delay = $min_delay;
                notify($r{"thread"});
            }
            $last_id = $r{"comment"};
        }
        # спим
        print STDERR "Sleeping for $delay seconds...\n";
        sleep($delay);
        # пересчитываем задержку
        $delay = $delay * $delay_slowdown;
        $delay = $max_delay if ($delay > $max_delay);
    }

    Говноскрипт для мониторинга сточных вод.

    bormand, 27 Мая 2012

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

    −122

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    my (@data) = $content =~ m#href="/show/\d+.*?">(.*?)</a>.*?(Ep: \d+).*?(at \d{2}:\d{2}).*?</small>#gsi;
    	
    for (my $i; $i < @data;){
    	$data .= $data [$i++].' '.$data [$i++].' '.$data [$i++];
    	$data .= "\n" unless $i == @data;
    }

    Распарсил.

    VictorVonSpok, 21 Мая 2012

    Комментарии (11)
  9. Perl / Говнокод #10272

    −119

    1. 1
    my $end_date = ($request =~ /<end_date>(\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d)<\/end_date>/io) ? $1 : '';

    PSIAlt, 15 Мая 2012

    Комментарии (2)
  10. Perl / Говнокод #10240

    −176

    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
    <html>
    <head>
    <script type="text/javascript">
    	var url = location.href;
    	var key = '<meta name="keywords" content="" />';
    	var dsc = '<meta name="description" content="Радиозавод – одно из ведущих предприятий, выпускающее hd ресиверы – цифровые, спутниковые, кабельные, приставки dvb с, а также инфракрасные сушки для овощей и фруктов, зерновые сеялки и светодиодные светильники для жкх. Кроме того мы предлагаем вниманию наших клиентов мобильную медицинскую технику: передвижной пункт забора крови, стоматологический кабинет и т.д." />';
    	url = url.replace('http://','');
    	url = url.replace('www.','')
    
    	if(url == "domen.ru") {
    	    dsc = '<meta name="description" content=""Радиозавод" осуществляет производство светодиодных светильников. Инфракрасная сушка одно из приоритетных направлений деятельности. Производители светодиодных светильников это группа компаний "Радиозавод"." />';
    	    key = '<meta name="keywords" content="производство светодиодных светильников, производители светодиодных светильников, инфракрасная сушка" />';
    	}
    	if(url == "domen.ru/catpv.5.htm") {
    	    dsc = '<meta name="description" content="передвижной стоматологический кабинет" />';
    	    key = '<meta name="keywords" content="Передвижной стоматологический кабинет от компании "Радиозавод" это универсальное решение для любых условий эксплуатации." />';
    	}
    	if(url == "domen.ru/catp.19.htm") {
    	    dsc = '<meta name="description" content=""Радиозавод" предлагает сеялку зерновую точного высева. Купить сеялку можно уже сейчас, доставляем в регионы." />';
    	    key = '<meta name="keywords" content="купить сеялку, сеялка зерновая, сеялка точного высева" />';
    	}
    	if(url == "domen.ru/catpv.103.htm") {
    	    dsc = '<meta name="description" content="Сеялка пневматическая универсальное решение для сельхозработ от компании "Радиозавод"" />';
    	    key = '<meta name="keywords" content="сеялка пневматическая" />';
    	}
    	
    	if(url == "domen.ru/catpv.104.htm") {
    	    dsc = '<meta name="description" content="Сеялка овощная как наверное оборудовение подойдет для  любых тракторов. Всегда в наличие овощная сеялка точного высева." />';
    	    key = '<meta name="keywords" content="овощная сеялка точного высева, сеялка овощная" />';
    	}
    	
    	if(url == "domen.ru/catpv.108.htm") {
    	    dsc = '<meta name="description" content=""Радиозавод" реализует светильники для теплиц в любом количестве. Светильник тепличный соответствует всем современным стандартам." />';
    	    key = '<meta name="keywords" content="светильники для теплиц, светильник тепличный" />';
    	}
    
    	/* ... тут еще куча такого же высера ... */
    
    	document.writeln(key);
    	document.writeln(dsc);
    </script>
    
    <title><TMPL_IF "header2"><TMPL_VAR "header2"><TMPL_ELSE><TMPL_VAR "start_header"><TMPL_IF "header"> - </TMPL_IF><TMPL_VAR "header"></TMPL_IF></title>

    Я даже вначале не знал в какую категорию это отнести.
    Сайт написан на Perl. Так как я не мастер в нем не буду выкладывать из него говнокод, вдруг он окажется мастер классом :)
    + Весело наблюдать закрытие тега meta в HTML.

    oooZinka, 10 Мая 2012

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