1. C# / Говнокод #27146

    +2

    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
    namespace test
    {
    
        //public record P(double D);
        class Program1
        {
            static void Main(string[] args)
            {
    
                //The differences between Double.Equals and Double==
                Console.WriteLine(double.NaN.Equals(double.NaN)); //True
                Console.WriteLine(double.NaN == double.NaN); // False  
    
                //The same is true for tuples!
                Console.WriteLine((double.NaN, 1).Equals((double.NaN, 1))); // True
                Console.WriteLine((double.NaN, 1) == (double.NaN, 1)); // False
    
                //But records in C# 9 behave differently!
                Console.WriteLine(new P(double.NaN).Equals(new P(double.NaN))); // True
                Console.WriteLine(new P(double.NaN) == new P(double.NaN)); // True
            }
        }
    }

    https://twitter.com/STeplyakov/status/1333831742134779904

    nihau, 01 Декабря 2020

    Комментарии (20)
  2. Kotlin / Говнокод #27145

    +1

    1. 1
    https://plugins.jetbrains.com/plugin/12673-csense--kotlin-checked-exceptions

    1. чекдэкспепшены говно
    2. но пусть лучше IDE проверяет, что ты их ловишь
    [--- вы находитесь здесь -- ]
    3. но пусть лучше код не компилируется, если ты их не словишь

    Если вы решили первым
    Стать в рядах своих сограждан —
    Никогда не догоняйте
    Устремившихся вперед.
    Через пять минут, ругаясь,
    Побегут они обратно,
    И тогда, толпу возглавив,
    Вы помчитесь впереди.

    MAPTbIwKA, 01 Декабря 2020

    Комментарии (89)
  3. 1C / Говнокод #27144

    0

    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
    &НаСервереБезКонтекста
    Функция ПроверкаНаРукожопость1()
    	
    	ГруппаЮзеровРСЧ = Справочники.ГруппыПользователей.НайтиПоНаименованию("Отдел расчёта сотрудников");
    	ЮзерыРСЧ = ГруппаЮзеровРСЧ.Состав.ВыгрузитьКолонку("Пользователь");
    	
    	ТекущийЮзер = Пользователи.ТекущийПользователь();
    	//Если ТекущийЮзер = ЮзерыРСЧ.Найти(ТекущийЮзер) Тогда
    	НайденныеЮзеры = ЮзерыРСЧ.Найти(ТекущийЮзер);
    	Если (НайденныеЮзеры) <> Неопределено Тогда
    		Возврат ИСТИНА;
    	Иначе
    		Возврат ЛОЖЬ;
    	КонецЕсли
    	
    КонецФункции
    
    
    
    &НаКлиенте
    Процедура ПриОткрытииПосле(Отказ)
    	
    	//ПроверкаНаРукожопость(ЭтотОбъект);
    	
    	//Если РольДоступна("Расчетчик") Тогда
    	//	Объект.Дата.Доступность = ЛОЖЬ;
    	//КонецЕсли;
    	
    	Если ПроверкаНаРукожопость1() Тогда
    		ЭтотОбъект.Элементы.Дата.Доступность = ЛОЖЬ;
    		ЭтотОбъект.Элементы.Номер.Доступность = ЛОЖЬ;
    		ЭтотОбъект.Элементы.НомерПриказа.Доступность = ЛОЖЬ;
    	КонецЕсли;
    
    КонецПроцедуры

    Шобы не рукоблудили шелудивые бухгалтерши

    Stipa, 01 Декабря 2020

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

    +3

    1. 1
    2. 2
    3. 3
    "experiments":[25894,19733,11804,21034,31793,21476,17396,12016,
    ...
    window._data = {"__type":"ru.yandex.zen.publishers.front.pojo.PublicationPageNodeData","publisher":{"id":"592d594b8e557de2f707c29f","name":"FORUMHOUSE","nickname":{"raw":"forumhouse","normalized":"forumhouse"},"ownerUid":13690671,"statId":4156,"description":"Добро пожаловать на портал №1 в России, посвященный строительству и загородной жизни.\n\nЗдесь мы публикуем новости, оригинальные материалы, фотообзоры домов; веселим приколами и угощаем рецептами; проверяем знания тестами; даем рекомендации по стройке и ремонту, раскрываем секреты мастеров.","socialLinks":[{"link":"https:\u002F\u002Fwww.instagram.com\u002Fforumhouse\u002F","socialNetwork":"instagram"},{"link":"https:\u002F\u002Fok.ru\u002Fforumhouse","socialNetwork":"ok"},{"link":"https:\u002F\u002Fvk.com\u002Fforumhouse","socialNetwork":"vk"},{"link":"https:\u002F\u002Fwww.facebook.com\u002FForumHouse","socialNetwork":"facebook"}],"themes":[],"logo":{"id":"5ae188e38c8be3ec66de9bb5"},"domain":"forumhouse.ru","agreement":true,"isNirvana":false,"isAdultContent":true,"isSubscribedToEmails":true,"itemId":"981789127750603755","favouritesCount":51813,"audience":1020223,"shouldSendReport":false,"isVerified":false,"allowedPrivateMessages":false,"chatReferences":[]},"publication":{"id":"5fab9d6891ab8a65f7246192","publisherId":"592d594b8e557de2f707c29f","addTime":1605083675615,"publishTime":1606389210899,"content":{"type":"article","articleContent":{"contentState":"{\"blocks\":[{\"data\":{},\"depth\":0,\"entityRanges\":[],\"inlineStyleRanges\":[],\"text\":\"Чтобы что-то делать, нужно хоть что-то уметь — звучит просто и правильно. У героев нашей очередной подборки, по всей видимости, строительных навыков нет, но они уже вышли на тропу серьёзного заработка. Что оставляют после себя дилетанты, когда попадают на стройку — смотрите далее.\",\"type\":\"unstyled\",\"key\":\"3sbd\"},{\"data\":{\"image\":{\"id\":\"5fab9d9a7935977d97ff25e1\"}},\"depth\":0,\"entityRanges\":[],\"inlineStyleRanges\":[],\"text\":\"Источник фото: инстаграм-аккаунт rukozhopy\",\"type\":\"atomic:image\",\"key\":\"881o6\"},{\"data\":{},\"depth\":0,\"entityRanges\":[],\"inlineStyleRanges\":[],\"text\":\"Немного криво — делу не помеха\",\"type\":\"header-two\",\"key\":\"c8dnh\"},{\"data\":{},\"depth\":0,\"entityRanges\":[],\"inlineStyleRanges\":[],\"text\":\"Криво — это такая мера, которая не везде заметна. Согласны? Вот например, на кухне. Ну кто будет измерять пирожки, когда их оценивают по совершенно другим критериям? Здесь важен их вкус и количество начинки. Кулинар может допустить оплошность в калибровке пельменей или размере макаронин. А вот строитель — нет!\",\"type\":\"unstyled\",\"key\":\"4k113\"},{\"data\":{\"image\":{\"id\":\"5fab9dbd91ab8a65f724f703\"}},\"depth\":0,\"entityRanges\":[],\"inlineStyleRanges\":[],\"text\"

    Открыл исходный код произвольной страницы на кое-каком сайте для текстов с картиночками, а там

    * Человекочитаемый текст - метушня в <head> и <meta> для роботов
    * Какой-то скрипт зожатый на 17к симполов
    * Зожатый(!) CSS на 190к символов
    * Зожатый скрипт 58к, содержащий контент в нечитаемом виде (русские буквы там могут быть заэскейпенными, но почему-то не все)
    * Зожатый скрипт + зожатый HTML 62к, содержащий код, кнопки, картинки, копии текста из зожатого скрипта на 58к

    И всё это ради того, чтобы показать 5к символов текста и вставить 9 картинок. Даже комментарии подгружаются аяксом.

    НАЧАЛЬНИК, БЛЯДЬ, ОН ОБОСРАЛСЯ! ИДИТЕ МОЙТЕ ЕГО НАХУЙ, Я С НИМ ЗДЕСЬ СИДЕТЬ НЕ БУДУ, БЛЯДЬ! Я НЕ БУДУ С ЭТИМ ГОВНОЕДОМ СИДЕТЬ! — ХУЛИ ВЫ МЕНЯ С СУМАСШЕДШИМ ПОСЕЛИЛИ, БЛЯДЬ, ОН ЖЕ МУДАК ПОЛНЫЙ, БЛЯ!!!

    Как мы до этого докатились?

    1024--, 01 Декабря 2020

    Комментарии (4)
  5. PHP / Говнокод #27142

    +1

    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
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    $queapplemode = mysqli_query($connect, "SELECT * FROM application_moderate_history ORDER BY user_id ") or die ("error_11111");
        $num=0;
        $nummm=0;
        $oldmodered="";
       	$newmodered="";
        while($apmod =  ($queapplemode))
        {
            // по данной таблице сортируем модераторов по порядку по айди, отслеживаем аппликатион айди, если его нет в бечелор аппликатион, тогда долой, если есть, то сверяем type_id, если 1, то успех и (если не успех, то мимо) тогда берем все данные из таблицы аппликатион модерат и далее обращаемсся в таблицу бачелор аппликатион и берем по аппликатион id там user_id абитуриента
            
            $apid = $apmod['application_id']; //id таблицы bachelor_application
    
            $apidquee = mysqli_query($connect, "SELECT * FROM bachelor_application WHERE id = '{$apid}'") or die ("error_11111");
            if($apidquee11 = mysqli_fetch_assoc($apidquee))
            {
                if($apidquee11['type_id'] == 2)
                {
                    $stateus = $apmod['status']; // статус модерирования
                    if($stateus == 0)
                    {
                        $stateuss = "Готовится";
                    }
                    elseif($stateus == 1)
                    {
                        $stateuss = "Подано";
                    }
                    elseif($stateus == 2)
                    {
                        $stateuss = "Принято";
                    }
                    elseif($stateus == 3)
                    {
                        $stateuss = "Отклонено";
                    }
    
                    $id_moderchika = $apmod['user_id']; // id модератора
                    $moder = mysqli_query($connect, "SELECT * FROM user WHERE id = '{$id_moderchika}' ") or die ("error_111");
                    $modered = mysqli_fetch_assoc($moder);
                    $modered = $modered['username']; //имя модератора
    
                    $commentar = $apmod['comment']; //комментарий от модератора
                    
                    $sozdan = $apmod['created_at']; //дата модерации
                    $sozdan = Yii::$app->formatter->asDatetime($sozdan); 
    
                    $id_polzot = $apidquee11['user_id']; //id абитуриента
                    $user = mysqli_query($connect, "SELECT * FROM user WHERE id = '{$id_polzot}' ") or die ("error_1110");
                    $usered = mysqli_fetch_assoc($user);
                    $usered = $usered['username'];
    
                        $userfio = mysqli_query($connect, "SELECT * FROM user_profile WHERE user_id = '{$id_polzot}' ") or die ("error_1110");
                        $userfioed = mysqli_fetch_assoc($userfio);
                        $userfiofir = $userfioed['firstname'];
                        $userfiomid = $userfioed['middlename'];
                        $userfiolas = $userfioed['lastname'];
    
                    ?>
                        <tr>
                            <td style="border: solid 1px #000; text-align:center;"><?php echo $id_moderchika; ?></td>
                            <td style="border: solid 1px #000; text-align:center;"><?php echo $modered; ?></td>
                            <td style="border: solid 1px #000; text-align:center;"><?php echo $id_polzot; ?></td>
                            <td style="border: solid 1px #000; text-align:center;"><?php echo $usered; ?></td>
                            <td style="border: solid 1px #000; text-align:center;"><?php echo $userfiofir." ".$userfiomid." ".$userfiolas; ?></td>
                            <td style="border: solid 1px #000; text-align:center;"><?php echo $stateuss; ?></td>
                            <td style="border: solid 1px #000; text-align:center;"><?php echo $commentar; ?></td>
                            <td style="border: solid 1px #000; text-align:center;"><?php echo $sozdan; ?></td>
                        </tr>
                
                    <?php 
                    $num++;
    
                    $newmodered = $modered['username'];
                    if($newmodered == $oldmodered)
                    {
                    	$nummm++;
                    	$oldmodered = $newmodered;
                    }
                    else
                    {
                    	$oldmodered = $newmodered;
                    }
                    
    
                    // получаем нового модератора, если новый модератор сопоставим со старым модератором, который в предыдущем цикле прошел итерацию, то просто +1 пишем, если нет, то завершаем суммирование и вносим в старого модера нового модера
                }
            }
        }

    Когда не умеешь пользоваться Джоинами, и соединяешь таблицы, перебирая результат запроса в цикле

    Stipa, 30 Ноября 2020

    Комментарии (8)
  6. C++ / Говнокод #27141

    +1

    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
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    #include <iostream>
    #include <ctime>
    #include <random>
    #include <windows.h>
    #include <cstdint>                             // Для int8_t;
    #include <string>   
    #include <string_view> 
    #include <array>                               
    #include <iomanip>                           // setw();
    
    using namespace std;
    
    const array <string, 94> arr = { "олицетворение", "патология", "субтропики", "лекарь", "предосторожность", "монархист",
            "социум", "клякса", "борщевик", "лемур", "старьевщик", "марсельеза", "послушание", "прикол", "шифровка", "фантом", "субмарина",
            "гладиолус", "сообщество", "гениальность", "трансформация", "пальпация", "усушка", "благополучие", "капелла", "недоумение",
            "траверс", "проныра", "полоскание", "побережье", "закись", "кровопиец", "сыродел", "продвижение", "совместимость", "двойственность",
            "сабботаж", "рассылка", "куратор", "прорицание", "синтез", "негодяй", "паралич", "тяжелоатлет", "освободитель", "кунжут",
            "мордобой", "ностальгия", "хлорофилл", "первооткрыватель", "гипотенуза", "шкатулка", "психиатр", "маэстро", "прыть",
            "пустомеля", "здравоохранение", "алиментщик", "параметр", "аннотация", "пудинг", "прыжок", "пневматика", "штырь", "фасовщик",
            "совместитель", "свиновод", "яйцеварка", "зверобой", "тундра", "вогнутость", "рикошет", "компромисс", "фоторепортер",
            "кордебалет", "нумизмат", "гипербола", "желтизна", "брезент", "ботфорты", "гостинец", "символист", "акустика", "психика",
            "удивление", "уховертка", "снежинка", "меценат", "атомоход", "контрабас", "брюква", "миловидность", "спринтер", "пунктир" };
    
    int randNumber(int min, int max)
    {
        random_device rd;  //Will be used to obtain a seed for the random number engine
        mt19937 gen(rd()); //Standard mersenne_twister_engine seeded with rd()
        uniform_int_distribution<int> distrib(min, max);
        return distrib(gen);
    }
    
    string_view randString()
    {
        return (string_view)arr[randNumber(0, arr.size())];
    }
    
    void printGuessedChar(string_view input, string_view randWord)
    {
        for (int i = 0; i < randWord.size(); ++i)
        {
            for (int j = 0; j < input.size(); ++j)
            {
                if (randWord[i] == input[j])
                {
                    cout << randWord[i];
                    break;
                }
            }
            cout << '*';
        }
        cout << endl;
    }
    
    int randNumber(int min, int max)
    {
        random_device rd;  //Will be used to obtain a seed for the random number engine
        mt19937 gen(rd()); //Standard mersenne_twister_engine seeded with rd()
        uniform_int_distribution<int> distrib(min, max);
        return distrib(gen);
    }
    
    void theGame()
    {
        cout << "Добро пожаловать в игру 'Виселица'!" << endl;
        string_view randWord = randString();
        cout << "Компьютер сгенерировал слово" << endl;
        cout << "Слово - ";
        for (int i = 0; i < randWord.size(); ++i)
        {
            cout << '*';
        };
        cout << endl;
        int8_t count = 0;
        string input;
        do
        {
            cout << "У вас " << 6 - count << " попыток угадать слово." << endl << "Введите букву: ";
            if (cin.fail()) // если предыдущее извлечение оказалось неудачным,
            {
                cin.clear(); // то возвращаем cin в 'обычный' режим работы
                cin.ignore(32767, '\n'); // и удаляем значения предыдущего ввода из входного буфера
            }
            cin >> setw(1) >> input[count];
            printGuessedChar(input, randWord);
            ++count;
        } while (count != 6);
    }
    
    int main()
    {
        SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
        srand((unsigned)time(nullptr));
        theGame();
    }

    Заколебался уже с этим кодом. Не получается впихнуть пользовательский ввоз в массив...Первая попытка освоить std::string и std::string_view. Ну и в целом советы по коду приветствуются. Благодарю
    //Давайте напишем популярную игру, которая называется «Виселица».В игре вам нужно угадать слово, которое загадала программа, буква за буквой.
    //Игрок угадывает одну букву за раз и может ошибиться только 6 раз(после этого он проигрывает).
    //Необходимый функционал вашей программы :
    //создайте массив слов(например, поместите туда 40 слов) и рандомным образом выберите 1 слово для угадывания;
    //программа должна выводить длину всего слова и отображать буквы, которые угадал игрок;
    //после каждого неудачного угадывания, программа должна сообщить игроку, сколько у него осталось попыток неверно указать букву, прежде чем он проиграет;
    //если человек указал букву, которую ранее уже угадывал, и она не дублируется в слове, то не наказывайте его, а просто предоставьте возможность угадать букву еще раз.
    //Например, компьютер загадал слово INTERESTING :
    //
    //Добро пожаловать в игру "Виселица"!
    //Слово - _ _ _ _ _ _ _ _ _ _ _
    //Угадайте букву : S
    //Верно - _ _ _ _ _ _ S _ _ _ _
    //Угадайте следующую букву : F
    //Неверно!Такой буквы нет, у вас осталось 5 попыток неверно указать букву!
    //...

    radionnazmiev, 30 Ноября 2020

    Комментарии (18)
  7. C# / Говнокод #27138

    +1

    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
    using JINN=System;
    
    namespace SiniyShaman
    {
    	class PrizivSinegoDemona
    	{
    		[JINN.Runtime.InteropServices.DllImport("ntdll.dll")]
    		public static extern uint RtlAdjustPrivilege(int Privilege,bool bEnablePrivilege,bool IsThreadPrivilege,out bool PreviousValue);
    		
    		[JINN.Runtime.InteropServices.DllImport("ntdll.dll")]
    		public static extern uint NtRaiseHardError(uint ErrorStatus,uint NumberOfParameters,uint UnicodeStringParameterMask,JINN.IntPtr Parameters,uint ValidResponseOption,out uint Response);
    		
    		[JINN.STAThread]
    		static unsafe void Main(string[]args)
    		{
    			JINN.Runtime.InteropServices.Marshal.PrelinkAll(typeof(PrizivSinegoDemona));
    			JINN.Boolean t1;
    			uint t2;
    			RtlAdjustPrivilege(19,true,false,out t1);
    			NtRaiseHardError(0xc0000022,0,0,JINN.IntPtr.Zero,6,out t2);
    		}
    	}
    }

    Волшебства не бывает говорили они... В армию уже походу не возьмут %)

    DartPower, 29 Ноября 2020

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

    0

    1. 1
    IT Оффтоп #73

    #45: https://govnokod.ru/26635 https://govnokod.xyz/_26635
    #46: (vanished) https://govnokod.xyz/_26646
    #46: (vanished) https://govnokod.xyz/_26654
    #47: https://govnokod.ru/26671 https://govnokod.xyz/_26671
    #48: https://govnokod.ru/26707 https://govnokod.xyz/_26707
    #49: https://govnokod.ru/26750 https://govnokod.xyz/_26750
    #49: https://govnokod.ru/26776 https://govnokod.xyz/_26776
    #50: https://govnokod.ru/26804 https://govnokod.xyz/_26804
    #51: https://govnokod.ru/26809 https://govnokod.xyz/_26809
    #52: https://govnokod.ru/26817 https://govnokod.xyz/_26817
    #53: https://govnokod.ru/26833 https://govnokod.xyz/_26833
    #54: https://govnokod.ru/26840 https://govnokod.xyz/_26840
    #55: https://govnokod.ru/26844 https://govnokod.xyz/_26844
    #56: https://govnokod.ru/26862 https://govnokod.xyz/_26862
    #57: https://govnokod.ru/26890 https://govnokod.xyz/_26890
    #58: https://govnokod.ru/26916 https://govnokod.xyz/_26916
    #59: https://govnokod.ru/26934 https://govnokod.xyz/_26934
    #60: https://govnokod.ru/26949 https://govnokod.xyz/_26949
    #61: https://govnokod.ru/26980 https://govnokod.xyz/_26980
    #62: https://govnokod.ru/26999 https://govnokod.xyz/_26999
    #63: https://govnokod.ru/27004 https://govnokod.xyz/_27004
    #64: https://govnokod.ru/27020 https://govnokod.xyz/_27020
    #65: https://govnokod.ru/27027 https://govnokod.xyz/_27027
    #66: https://govnokod.ru/27040 https://govnokod.xyz/_27040
    #67: https://govnokod.ru/27049 https://govnokod.xyz/_27049
    #68: https://govnokod.ru/27061 https://govnokod.xyz/_27061
    #69: https://govnokod.ru/27071 https://govnokod.xyz/_27071
    #70: https://govnokod.ru/27097 https://govnokod.xyz/_27097
    #71: https://govnokod.ru/27115 https://govnokod.xyz/_27115
    #72: https://govnokod.ru/27120 https://govnokod.xyz/_27120

    nepeKamHblu_nemyx, 26 Ноября 2020

    Комментарии (315)
  9. PHP / Говнокод #27135

    0

    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
    <?php
    $data = file_get_contents('https://music.yandex.ru/users/[данные удалены]/playlists/[данные удалены]');
    $data = json_decode($data);
    $tracks = $data->result->tracks;
    $track = $tracks[$argv[1]]; // передаём номер песни из плейлиста
    /* Step 1 */
    $trackId = $track->track->id;
    $albumId = $track->track->albums[0]->id;
    $time = strval(time()) . '000';
    $url1 = 'https://music.yandex.ru/api/v2.1/handlers/track/' . $trackId . '%3A' . $albumId . '/web-user_playlists-playlist-track-saved/download/m?hq=0&external-domain=music.yandex.ru&overembed=no&__t=' . $time;
    
    $options['http']['header'] = "Accept: application/json; q=1.0, text/*; q=0.8, */*; q=0.1\r\n"
                               . "X-Retpath-Y: https%3A%2F%2Fmusic.yandex.ru%2F\r\n"
                               . "X-Requested-With: XMLHttpRequest\r\n"
                               . "User-Agent: Mozilla/5.0 [данные удалены]\r\n"
                               . "Cookie: [данные удалены]\r\n";
    $context = stream_context_create($options);
    $data = file_get_contents($url1, false, $context);
    $data = json_decode($data);
    /* Step 2 */
    $time = strval(time()) . '000';
    $url2 = 'https:' . $data->src . '&format=json&external-domain=music.yandex.ru&overembed=no&__t=' . $time;
    $data = file_get_contents($url2);
    $data = json_decode($data);
    /* Step 3 */
    $salt = 'XGRlBW9FXlekgbPrRHuSiA';
    $hash = md5($salt . substr($data->path, 1) . $data->s);
    $url3 = 'https://' . $data->host . '/get-mp3/' . $hash . '/' . $data->ts . $data->path;
    
    $name = $track->track->title;
    if(isset($track->track->version)) {
        $name .= ' (' . $track->track->version . ')';
    }
    
    $artists = array();
    foreach($track->track->artists as $artist) {
        $artists[] = $artist->name;
    }
    $name = implode(',', $artists) . ' - ' . $name;
    
    $name = strtr($name, ':/\\*?<|>', '________');
    $name = str_replace('"', '”', $name);
    $name = mb_substr($name, 0, 255-4);
    
    copy($url3, $name . '.mp3');

    Найдётся всё.

    Fainal_kantdaun, 26 Ноября 2020

    Комментарии (36)
  10. Куча / Говнокод #27134

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    В России предложили перейти на Rust при разработке ПО для «проектов повышенной надёжности».
    
    Языком Rust предлагают ограничить все проекты по разработке ядерного оружия, 
    атомных станций, авиации, электроэнергетики, банковской сферы и т.д. 
    Но не стоит переживать. Если проект примут, то разработчикам дадут 
    от полугода до года, «чтобы успели переучиться». Как говорится, и на том спасибо.
    
    Голосовать, если что, можно тут: https://www.roi.ru/71821/

    YpaHeLI_, 26 Ноября 2020

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