ЙажаСценарий / Говнокод #10564 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
ISQ.Translation.Infra.extractJobIdFromText=function(k){
    var d;
    var g=k.toLowerCase();
    var j=g.indexOf("<"+ISQ.Translation.Infra.jobIdMarkerTag);
    if(j===-1){
	j=g.indexOf("< "+ISQ.Translation.Infra.jobIdMarkerTag)
    }
    if(j===-1){
	if(ISQ.Widget&&ISQ.Widget.Log){
	    ISQ.Widget.Log.add("ISQ.Translation.Infra.extractJobIdFromText: Couldnt parse jobIdMarker from text! "+k,ISQ.Widget.Log.statusEnum.RED)
	}
	return{id:-1,text:k}
    }
    var b=k.indexOf(">",j);
    if(b===-1){
	if(ISQ.Widget&&ISQ.Widget.Log){
	    ISQ.Widget.Log.add("ISQ.Translation.Infra.extractJobIdFromText: jobIdMarker tag is invalid!",ISQ.Widget.Log.statusEnum.RED)
	}
	return{id:-1,text:k}

    }
    b+=1;
    var h=g.substring(j,b);
    var e=h.indexOf(ISQ.Translation.Infra.jobIdMarkerTag);
    if(e===-1){
	if(ISQ.Widget&&ISQ.Widget.Log){
	    ISQ.Widget.Log.add("ISQ.Translation.Infra.extractJobIdFromText: jobIdMarker tag is invalid!",ISQ.Widget.Log.statusEnum.RED)
	}
	return{id:-1,text:k}
    }
    e+=ISQ.Translation.Infra.jobIdMarkerTag.length;
    var f="";
    var a;
    do
    {
	if(e>h.length){
	    break
	}
	a=h.charAt(e++);
	if(a.charCodeAt(0)<48||a.charCodeAt(0)>57){
	    break
	}
	f+=a
    }
    while(true);
    d=parseInt(f);
    if(isNaN(d)){
	if(ISQ.Widget&&ISQ.Widget.Log){
	    ISQ.Widget.Log.add(
		"ISQ.Translation.Infra.extractJobIdFromText: jobIdMarker tag is invalid: could not parse id#",
		ISQ.Widget.Log.statusEnum.RED)
	}
	return{id:-1,text:k}
    }
    var i;
    if(j===0){
	i=k.substring(b)
    }
    else
    {
	i=k.substring(0,j);
	if(b<k.length){
	    i+=k.substring(b)
	}
    }
    return{id:d,text:i}
};

Закомммммммммммментировал!

Запостил: wvxvw wvxvw, (Updated )

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

  • 2 wvxvw:
    Давайте вы просто выложите весь проект на пэйстбин или ещё куда, и линканёте? Такие простыни каждый раз 🙂
    Ответить
    • Сорри, я больше не буду такие длинные. Но тут специфический случай, т.как размер имеет значение. Т.е. в короткой функции обнаружить while(true); было бы все-таки проще. Я так думаю.
      Ответить
      • Да я даже ничего против этого не имею, запостил просьбу выложить больше потому, что хочется покопаться самому. Потому что отменное.
        Ответить
        • http://www.nanorep.com/
          оно все отсюда, но как бы выкладывать не буду, да и не стоит оно, чтобы его увековечили где-то, ну и противно будет после прочтения - его там по-настоящему много.
          Ответить
            • Так оно и есть .NET, более того, код яваскрптовский наполовину сгенерированный (это в часности объясняет длинные названия - его бы так умаялись писать). Но генерировать его на каком-то этапе прекратили, т.как начали доправлять руками (какой урод это начал теперь уже не узнать). И вобщем теперь оно вот такое вот, какое есть.
              Ответить
            • Это компания-производительн последних поставок на ГК.ру. Говнокод производят под личиной программы заменяющей частично тех. поддержку в разных больших организациях, где такую поддержку предоставляют клиентам на которых можно положить. Например: Компании ИКЕА положить на тех, кто у нее приобрел мебель - вот они и устанавливают у себя на сайте робот-автоответчик, который общается с клиентами. Или, другой пример, администрации университета впадлу отвечать студентам и чинить сайт до состояния, когда им можно пользоваться - вот они тоже, платят за аренду бота авотоответчика.
              Ответить
      • Это цикл с инусловием (или цикл с выходом из середины).
        Ответить
            • За do { .. } while(..) без веской на то причины, и без пустой строки после while(..) надо убивать. Медленно и жестоко.
              Ответить
              • Само собой. В крайнем случае, чтобы не вводить в заблуждение, как в этом случае, писать
                /* ... */
                } while (1);

                Но цикл с послеусловием, скорее всего, признак нездорового костыля.
                Ответить

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

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8