1. JavaScript / Говнокод #11690

    +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
    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
    .replace(/😊/g,'<img src="http://vk.com/images/emoji/D83DDE0A.png">')
    .replace(/😃/g,'<img src="http://vk.com/images/emoji/D83DDE03.png">')
    .replace(/😆/g,'<img src="http://vk.com/images/emoji/D83DDE06.png">')
    .replace(/😉/g,'<img src="http://vk.com/images/emoji/D83DDE09.png">')
    .replace(/😜/g,'<img src="http://vk.com/images/emoji/D83DDE1C.png">')
    .replace(/😋/g,'<img src="http://vk.com/images/emoji/D83DDE0B.png">')
    .replace(/😍/g,'<img src="http://vk.com/images/emoji/D83DDE0D.png">')
    .replace(/😎/g,'<img src="http://vk.com/images/emoji/D83DDE0E.png">')
    .replace(/😒/g,'<img src="http://vk.com/images/emoji/D83DDE12.png">')
    .replace(/😏/g,'<img src="http://vk.com/images/emoji/D83DDE0F.png">')
    .replace(/😔/g,'<img src="http://vk.com/images/emoji/D83DDE14.png">')
    .replace(/😢/g,'<img src="http://vk.com/images/emoji/D83DDE22.png">')
    .replace(/😭/g,'<img src="http://vk.com/images/emoji/D83DDE2D.png">')
    .replace(/😩/g,'<img src="http://vk.com/images/emoji/D83DDE29.png">')
    .replace(/😨/g,'<img src="http://vk.com/images/emoji/D83DDE28.png">')
    .replace(/😐/g,'<img src="http://vk.com/images/emoji/D83DDE10.png">')
    .replace(/😌/g,'<img src="http://vk.com/images/emoji/D83DDE0C.png">')
    .replace(/😠/g,'<img src="http://vk.com/images/emoji/D83DDE20.png">')
    .replace(/😡/g,'<img src="http://vk.com/images/emoji/D83DDE21.png">')
    .replace(/😇/g,'<img src="http://vk.com/images/emoji/D83DDE07.png">')
    .replace(/😰/g,'<img src="http://vk.com/images/emoji/D83DDE30.png">')
    .replace(/😲/g,'<img src="http://vk.com/images/emoji/D83DDE32.png">')
    .replace(/😳/g,'<img src="http://vk.com/images/emoji/D83DDE33.png">')
    .replace(/😷/g,'<img src="http://vk.com/images/emoji/D83DDE37.png">')
    .replace(/😚/g,'<img src="http://vk.com/images/emoji/D83DDE1A.png">')
    .replace(/😈/g,'<img src="http://vk.com/images/emoji/D83DDE08.png">')
    .replace(/❤/g,'<img src="http://vk.com/images/emoji/2764.png">')
    .replace(/👍/g,'<img src="http://vk.com/images/emoji/D83DDC4D.png">')
    .replace(/👎/g,'<img src="http://vk.com/images/emoji/D83DDC4E.png">')
    .replace(/☝/g,'<img src="http://vk.com/images/emoji/261D.png">')
    .replace(/✌/g,'<img src="http://vk.com/images/emoji/270C.png">')
    .replace(/👌/g,'<img src="http://vk.com/images/emoji/D83DDC4C.png">')

    Моя реализация обработки смайликов из VK. Это потом уже голова стала соображать и всё заменилось регуляркой с функцией.

    Запостил: nsauk, 01 Сентября 2012

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

    • Guest, you'll be a user soon.
      Ответить
    • > /😃/
      Красивый и наглядный код 😃
      Ответить
    • Няшка.
      Ответить
    • Фи, какие вконтакте смайлы уебищные.
      Ответить
      • Это не что иное как Emoji, разработанные и продвинутые в стандарт Юникода корпорацией Apple. Графика как раз очень близка к оригинальным Emoji. Мне, например, колобки гораздо меньше нравятся. Хотя мне вообще графические смайлы не нравятся.
        Ответить
    • Любопытно.
      Руки вот не все пока отображаются (Firefox/Xubuntu)

      Да, кстати, и какой простор для юникодных идентификаторов...
      if (❤)
        😊.☝(😲);

      Хотя нет, там все равно вроде можно только буквы. Жаль.
      Ответить
      • Как там --->
        http://govnokod.ru/11680
        ? Моё мнение вы по этому поводу уже знаете. Я полез глубже в проект и нашел там очень много корней и не только. Пришлось все на sqrt заменять. Там даже константа 1\2 символом задана. %( Под gcc не портировалось.

        Мне код вроде и нравится, почитабильнее будет (на некоторых компах ))))))

        Но как заставить gcc это хавать? Есть мысли? Может там какой ключик или прагма есть?
        Ответить
        • Вообще это бы хорошо добавить в стандарт С++ наконец и начать производить математическую клаву.
          Ответить
          • Я просто оставлю это здесь: APL.
            Ответить
            • http://en.wikipedia.org/wiki/APL_(programming_language)

              Гууд. Только как-то мало про него пишут. Не популярный? MINIMUM BYDLO?
              Ответить
        • Ключик есть (-fextended-identifiers). Но к сожалению с ним идентификаторы нужно писать как \u0014. Т.е. нужно прогонять исходник через препроцессор, заменяющий юникодные символы на \uxxxx, что не совсем приятно.
          Ответить
      • Юникод в идентификаторах? Всегда так делаю:

        data T ∷ * where {Â, Â', S, K ∷ T; (:.) ∷ T → T → T; Ψ ∷ {σ ∷ 𝕊} → T
                         ;F ∷ (ℤ → ℤ) → T; N ∷ ℤ → T; Ø ∷ 𝕊 → T}
        Ответить
    • а чё ваще, вконтактик разрешает использовать свои смайлы на сторонних сайтах?
      Ответить
      • кстати, этот набор смайлов - говно сам по себе, отдает мертвечиной.
        классический набор, типа как на форуме ixbt, - и то намного лучше. имхо.
        Ответить
    • Вижу только сердце, руку и пальцы V.
      Остальное - вопросики.
      Ответить
      • А у меня 28, 29 и 32 не раскрылись.
        Ответить
      • это зависит от наличия соответствующих глифов в установленных шрифтах
        Ответить
      • Винда не обновляется? ;)
        Ответить
        • Регулярно обновляется.
          Ответить
        • см.:
          LispGovno: Win 7, видны только 3.
          Vindicar: Win 7. Видны все.
          Ответить
        • Винда обновляется, только ей пох на шрифты... Обычно заплатки уязвимостей
          Ответить
          • Если бы. Винда обновляется чтобы либы которые крякают перезалить.
            Ответить
            • Раньше так и было, но теперь дошло, что это бесполезно, и просто надоедают своим генуином
              Ответить
    • Видны почти все. Нет только 27, 30 и 31.
      Mac OS X 10.7.4
      Ответить
      • Win 7, видны только 3. Ну вы понели.
        Ответить
        • А смайлы, кстати, действительно идентичные. Интересно, сколько "дизайнер" получил за эти смайлы?
          Ответить
          • Не менее 200 000 рублей и MacBook Air.
            Идентичные они потому, что так просил заказчик.
            https://www.free-lance.ru/projects/986375/vkontakte-provodit-konkurs-tender-na-sozdanie-smaylov.html
            Ответить
        • А я уже было собрался искать стандартные шрифты из виндоуз 7 / 8... А какой офис у вас стоит? Судя по http://en.wikipedia.org/wiki/Unicode_typefaces , с офисом ставится Arial Unicode MS с кучей глифов. Может, там эти глифы есть?
          Ответить
        • У нас разная степень видимости, ага. Смотрю с win 7: 27, 30, 31 - точно такие же, как и в Mac OS X, а вот вместо квадратиков в макоси графические изображение, как раз такие, что по ссылкам.

          А смайлов там в шрифте целая кодовая страница, кстати. 255 штук.
          Ответить
    • openSUSE 12.1. Отсутствуют 28, 29, 32
      Ответить
    • Win 7. Видны все.
      Ответить
      • Почти все в виде знаков вопроса?
        Ответить
        • http://jpegshare.net/8f/b3/8fb311d412c2670d7e34fb08e5d923fc.png.html
          Ответить
          • вот и у меня такая же картина
            а хочется, что все было, как у белых людей! :)
            Ответить
            • Установите [color]http://users.teilar.gr/~g1951d/Symbola702.zip[/color].
              Ответить
              • Установил, изменений нет. Разве что если вручную выбирать этот шрифт.
                Ответить
      • можете выложить куда-нибудь свою папку fonts?
        Ответить
        • http://pastebin.com/AQMQ1nDT
          Сортировка по дате, от старых к новым.
          Ответить
      • Позвольте полюбопытствовать вышим скриншотом?
        Ответить
    • Это тред на отображение юникодных символов? Обычно у меня половина отображается хрен пойми как, но в этот раз видны все; огнелис, семёрка, х64.
      Ответить
      • На одном компе (win xp sp3, х32) - ни одного символа! На другом (win xp sp2, х32) - три штуки.
        Плиз, папку fonts в студию!
        Или это зависит от разрядности системы?
        Ответить
        • Я никаких фонтов не ставил. Вообще. Разве что папка с фонтами весит 573 934 059 байт ровно.
          Списочек могу вполне куда-нибудь в пастебины выложить, но там 544 файла.
          Ответить
          • Список не поможет, ибо у шрифтов в разных виндах разные версии и набор глифов. Есть так называемые "Core fonts" - всякие Arial, Times, Courier - вот они-то и интересуют, так как у них самый большой охват символов.
            Но могут быть и некоторые тонкости, поэтому лучше поковырять всю папку целиком.
            Ответить
            • Я бы залил, но оно и в сжатом виде весит триста мегабайт, а у меня что-то сродни диалапу и залить это практически невозможно.
              Ответить
              • Насколько я понял, истина где-то рядом с "Font Fallback" / "Font Linking". См. http://msdn.microsoft.com/en-us/goglobal/bb688134.aspx

                У кого все символы отображаются - посмотрите-ка содержимое ветки
                HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wi ndows NT\CurrentVersion\FontLink - возможно, ответ здесь!
                Ответить
                • Примерно так лечится:
                  [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\LanguagePack] 
                   "Surrogate"=dword:00000002 
                  
                   [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\LanguagePack\Surrogate Fallback] 
                   "Plane2"="UniversaliaPlus" 
                   "Plane1"="UniversaliaPlus" 
                   "Plane15"="UniversaliaPlus"


                  При этом пользователи Хрома всё равно обломаются: он почему-то фильтрует некоторые символы. Ещё есть проблема в Windows 8.x. Да, в семёрке и в Висте, как ни странно, браузеры ведут себя лучше. В восьмёрке все символы отображает только... Опера 12.
                  Ответить
              • > бы залил, но оно и в сжатом виде весит триста

                ну ты знаешь же где тебе найти тракториста?
                Ответить
        • У меня в виртуалке в XP x86 нет даже иероглифов, какой юникод? )
          Ответить
      • У меня видны все кроме 1,4 и 5 с конца (они же 28,29,32)
        Ответить
    • <img src="http://vk.com/images/emoji/D83DDE0A.png"> как бы намекает, что это 0xD83D и 0xDE0A в UTF-16
      Ответить
      • В каком шревте это есть?
        Ответить
        • Universalia+, Quivira, Symbola, Android Emoji, Noto Emoji, Segoe UI Emoji.

          Вообще смотри сюда: http://www.alanwood.net/unicode/emoticons.html

          И сюда: https://en.wikipedia.org/wiki/Emoji
          Ответить
    • Даешь символ гоатсе.
      Ответить
    • Какого черта тред проснулся через несколько лет столь активно?
      Ответить
      • Шрифтопроблемы, сэр! Пользователи современных виндовсов и веб-браузеров соснули.
        Ответить

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