Вверх ↑
Этот топик читают: Гость
Ответов: 122
Рейтинг: 2
#1: 2013-01-01 19:38:16 ЛС | профиль | цитата
Добрый вечер.
Всех с праздником.

приступлю сразу к вопросу:

я сделал апдейтер для своей програмки в ней 3 HTTP_Get ( 1)проверка обновлений 2)логин(вход) 3)скачивание *.msi обновления(с дропбокса)) доп инфо 1 и 2 с параметром Wait=false а 3 с Wait=true (в прошлый раз это решило проблему)

раньше всё работало стабильно
я недавно ввёл логин(вход) и скачивание *.msi обновления прекратилось (хотя я эту часть кода не трогал)
что делать?
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 5446
Рейтинг: 323
#2: 2013-01-01 22:27:48 ЛС | профиль | цитата
Ну для начала - помочь телепатам путём выкладывания схемы. Можешь также воспользоваться функцией отладки и посмотреть, что сломалось.
карма: 1

0
Ответов: 122
Рейтинг: 2
#3: 2013-01-01 22:48:30 ЛС | профиль | цитата
отладкой пользовался
одну секунду сейчас выложу (эту схему не считайте за рекламу) только комментарии проставлю
------------ Дoбавленo в 22.48:
схема настолько большая что так просто не выкладывается
https://www.dropbox.com/s/jfatghgux3pjjp7/AlexCraft.sha
карма: 0

0
Ответов: 5446
Рейтинг: 323
#4: 2013-01-01 23:59:43 ЛС | профиль | цитата
[offtop]Я немного пьяный, поэтому сильно занудный.[/offtop]
Номер ноль: Схема местами (сам ведь знаешь, какими) представляет собой "ядерный писец" ((с) народ). "В грязном коде баги водятся, и чем грязнее код - тем толще баги".

Номер раз: Зачем связь onStop -> doStop? Это что за онанизм, простите мой французский?

Номер два: Для кого nesco запилил компонент EnvVars?
Вот эта колбаса
Add(Dir,3732171,64,105)
{
Point(SendToDir)
}
Add(StrCat,9559343,64,161)
{
Str1="!"
link(onStrCat,1304200:doSearch,[])
link(Str2,3732171:DesktopDir,[])
}
Add(BlockFind,1304200,106,161)
{
IncludeBlock=1
Delete=0
StartBlock="!"
EndBlock="Desktop"
link(onSearch,2158649:doString,[])
link(Text,9559343:Result,[(112,156)(92,156)(92,200)(70,200)])
}
Add(FormatStr,2158649,147,161)
{
DataCount=1
Mask="%1appdataRoaming.alexcraft"
Point(FString)
}
может быть заменена на вот такую аккуратную связку:
Add(EnvVars,13481656,966,322)
{
Name="AppData"
link(onExpand,6267438:doStrCat,[])
}
Add(StrCat,6267438,1029,322)
{
Str2="\.alexcraft\"
}
И кстати, определять этот путь можно один раз при старте программы, а дальше запихать его в GlobalVar. Есть такое правило в талмудах на тему "как стать настоящим программистом": DNR - Do Not Repeat, не повторяйся. Мои самые "любимые" баги (и поверь мне, я готов был сгореть на месте от стыда, когда меня носом в них тыкали!) возникали именно тогда, когда я этому правилу не следовал.

Номер три: Ещё раз DNR (каламбур, однако!). Повторять должен не ты, а твой комп: он не ошибается. Почувству разницу:
Add(MultiElement,16049185,1050,308)
{
}
BEGIN_SDK
Add(EditMulti,10413824,49,371)
{
EventCount=1
WorkCount=1
Width=538
link(doWork1,15214164:doEvent1,[(80,377)(80,510)])
}
Add(DirTools,13541774,427,455)
{
NoConfirmation=1
Point(doExists)
link(onOK,12907621:doCase,[])
link(Source,139965:Result,[(433,443)(370,443)(370,520)(307,520)])
}
Add(StrCat,139965,301,476)
{
Str2="bin"
link(onStrCat,13541774:doExists,[])
link(Str1,2863309:Var,[])
}
Add(GlobalVar,2863309,301,448)
{
Name="sysdir"
}
Add(Hub,15214164,91,504)
{
link(onEvent1,11307181:doEnum,[(175,510)(175,482)])
link(onEvent2,10413824:onEvent1,[(546,517)(546,377)])
}
Add(StrList,12526498,231,399)
{
Strings=#3:bin|6:config|8:coremods|4:mods|
}
Add(ArrayEnum,11307181,245,476)
{
link(onItem,139965:doStrCat,[])
link(Array,12526498:Array,[])
}
Add(Case,12907621,483,455)
{
Value=Integer(0)
link(onNextCase,13541774:doDelete,[(526,461)(526,435)(415,435)(415,475)])
}
END_SDK

Номер четыре: я уверен, что использовать StrList для чтения и записи бинарной информации - это плохая идея. Используй связку
Add(FileStream,11110613,280,49)
{
link(onLoad,7879394:doConvert,[])
}
Add(StreamConvertor,7879394,329,49)
{
Mode=6
}
и просмотри примеры в Wiki: Примеры, Примеры 2, Примеры 3.

Номер пять: Правильно "Обнаружено", а не "Обнoружено". Спасибо хоть, что "пароль", а не "пороль"

Номер шесть: почему-то скрипт обновлений выдаёт ответ в два приёма (206 Partial Content с начальной кавычкой, затем 200 OK с "{ret: punt}"), это (по всей видимости) сбивает с толку HTTP_Get.

Пока хватит. Как это исправишь - выкладывай обновлённую схему, продолжим разговор.
карма: 1

3
Голосовали:Alex_P, KisL()R()[), ashkalov
Ответов: 16884
Рейтинг: 1239
#5: 2013-01-02 01:45:04 ЛС | профиль | цитата
Alex_P писал(а):
схема настолько большая что так просто не выкладывается
Твоя иконка в 5 раз больше твоей схемы. Нахрена для консультации выкладывать схему с иконкой ?
Дурдом.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 122
Рейтинг: 2
#6: 2013-01-02 14:27:59 ЛС | профиль | цитата
Дорогой iarspider, спасибо тебе за столь хорошие примеры

iarspider писал(а):
Схема местами (сам ведь знаешь, какими) представляет собой "ядерный писец" ((с) народ). "В грязном коде баги водятся, и чем грязнее код - тем толще баги".
я над этии предложениями долго смеялся и полностью согласен
iarspider писал(а):
Зачем связь onStop -> doStop? Это что за онанизм, простите мой французский?
я на эти связи ставил Debug а уже потом забыл удалить.
iarspider писал(а):
Как это исправишь - выкладывай обновлённую схему, продолжим разговор.
сейчас этим и займусь

Tad, понял почему то даже не подумал об этом.
------------ Дoбавленo в 14.27:
iarspider, "номер два" тут есть ошибка
вот верный вариант
Add(EnvVars,265553,287,252)
{
Name="APPDATA"
Point(doGet)
Point(onGet)
link(onGet,6267438:doStrCat,[])
}
Add(StrCat,6267438,336,259)
{
Str2="\.alexcraft\"
link(onStrCat,1921119:doValue,[])
}
Add(GlobalVar,1921119,385,259)
{
Name="sysdir"
}

карма: 0

1
Голосовали:iarspider
Ответов: 5446
Рейтинг: 323
#7: 2013-01-02 23:58:40 ЛС | профиль | цитата
Alex_P писал(а):
Дорогой iarspider, спасибо тебе за столь хорошие примеры

Всегда пожалуйста.

Alex_P писал(а):
iarspider, "номер два" тут есть ошибка

iarspider писал(а):
Я немного пьяный

Я предупреждал

Кстати, по поводу скрипта проверки обновлений: попробуй output buffering использовать, может тогда будет одним пакетом всё отсылать.
На всякий пожарный: я на PHP только "ручками" умею писать, пакетом Web - не умею.
карма: 1

0
Ответов: 122
Рейтинг: 2
#8: 2013-01-03 11:32:58 ЛС | профиль | цитата
iarspider писал(а):
Кстати, по поводу скрипта проверки обновлений: попробуй output buffering использовать, может тогда будет одним пакетом всё отсылать.

спасибо за ссылочку очень помогла (особенно замена текста). (но я пожалуй сделаю с помощью старого доброго if'а)

iarspider писал(а):
На всякий пожарный: я на PHP только "ручками" умею писать, пакетом Web - не умею.

а я делаю в HiAsm половину а потом довожу до совершенства "ручками". (получается довольно хорошо)

сделаю при логине выход типа " "!"версия"!"URLобновления"!" " и тогда не надо будет париться с разными сборками (обычные, випы, тестеры, итд)
и надеюсь, что это исправит "конфликты компонентов (HTTP_Get)"
при успехе напишу
карма: 0

0
Ответов: 122
Рейтинг: 2
#9: 2013-01-10 16:28:54 ЛС | профиль | цитата
сделал но всё равно не работает
[burl=https://dl.dropbox.com/s/jfatghgux3pjjp7/AlexCraft.sha?dl=1]ссЫлка[/burl]
карма: 0

0
Ответов: 189
Рейтинг: 4
#10: 2013-01-10 19:53:11 ЛС | профиль | цитата
Alex_P, зачем сохранять сам пароль в login.pass?
Запакованный туда EnCrypt'ом, его можно также спокойно досатать DeCrypt'ом.
НИКОГДА не сохраняй пароль так, чтобы его можно было достать обратно!
Лучше использовать при авторизации hash-сумму логина и пароля, и сохранять её и логин.
Иначе своей сборкой очередной игрушки можно много чего человеку разрушить (Вдруг пароль от почты такой-же?, а дальше и 'Восстановить пароль' можно почти везде!).

p.s. У minecraft'а можно было вызвать ошибку, а потом достать из error log'а логин и hash, из-за этого можно было заходить от их имени. А представь, что было-бы если-бы достался сам пароль! Много у кого, 'странные вещи' происходили-бы.
------------ Дoбавленo в 19.53:
Также лучше использовать вместо ! какой-нибудь символ, который нельзя просто так набрать с клавиатуры, допустим ↨ (Alt + 23) а также проверять на наличие этого символа в логине и в пароле. (Вдруг у кого-то из пользователей пароль Ink0gn!to )
карма: 0

1
Голосовали:Alex_P
Ответов: 122
Рейтинг: 2
#11: 2013-01-11 10:17:34 ЛС | профиль | цитата
о спасибочки сейчас попробую
НО так и не скачивается обновление
------------ Дoбавленo в 10.00:
KisL()R()[), конечно я всё понял НО мне надо видеть(в полях логина и пароля) логин и пароль что делать?
------------ Дoбавленo в 10.17:
что делать?
карма: 0

0
Ответов: 1043
Рейтинг: 33
#12: 2013-01-11 10:21:52 ЛС | профиль | цитата
Alex_P, тогда шифруй пароль элементом Cryptography
карма: 0

0
Ответов: 122
Рейтинг: 2
#13: 2013-01-11 10:52:21 ЛС | профиль | цитата
Alex_P писал(а):
НО так и не скачивается обновление

карма: 0

0
Ответов: 1043
Рейтинг: 33
#14: 2013-01-11 11:13:45 ЛС | профиль | цитата
Alex_P, а ты как обновляешься? через HiUpdate?
------------ Дoбавленo в 11.13:
Установи альтернативную сборку там все есть
http://forum.d2h.ru/forum.html?q=3&t=58323
карма: 0

0
Ответов: 122
Рейтинг: 2
#15: 2013-01-11 12:48:40 ЛС | профиль | цитата
да давно уже установил
------------ Дoбавленo в 12.48:
ну так что с HTTP_GET ?

(помогите с записью строки в файл(кинте схемку))
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)