georgmann писал(а):
Схема работает, но если в списке десятки или сотни ссылок, то процесс зависает от частоты запросов. Думаю, здесь обязательно нужно добавить возможность устанавливать задержку в msПовторяю
Gunta писал(а):
Вышли пример txt файла со списком ссылок.
Add(MainForm,7670060,77,28)
{
Width=477
Caption="Сократитель ссылок используя API "
}
Add(MST_ArrayRows,5429603,469,196)
{
MSTControl="asd"
}
Add(MTStrTbl,6542947,245,315)
{
Top=40
Width=461
Height=221
Align=5
Name="asd"
Columns=#8:long_url|12:shortenedUrl|
}
Add(MST_Load,11685183,252,84)
{
ColNameHeader=1
MSTControl="asd"
link(onLoad,16128552:doEvent1,[(298,90)(298,118)])
}
Add(IndexToChanel,8532413,126,77)
{
Count=7
link(onEvent2,13303500:doExecute,[])
link(onEvent3,5897095:doMessage,[(193,97)(193,125)])
link(onEvent4,3379452:doExecute,[(186,104)(186,167)])
link(onEvent6,5122062:doEvent1,[(179,118)(179,237)])
link(onEvent7,15352547:doStop,[(172,125)(172,265)])
}
Add(ODialog,13303500,203,84)
{
link(onExecute,11685183:doLoad,[])
}
Add(SDialog,3379452,203,161)
{
link(onExecute,184413:doSave,[])
}
Add(MST_Save,184413,252,161)
{
SaveColumn=1
SaveColProp=1
MSTControl="asd"
}
Add(MST_ColAction,5297033,889,259)
{
Action=9
Index=-2
MSTControl="asd"
}
Add(CounterEx,8899381,420,252)
{
Min=-1
Max=1000
Default=-1
Point(doReset)
Point(onSet)
link(onNext,7985455:doRead,[])
}
Add(MT_MTArrayRW,7985455,469,252)
{
link(onRead,9040420:doSeparateMT,[])
link(Array,5429603:Strings,[])
}
Add(MenuEx,8319746,70,77)
{
Menu=#13:Список ссылок|1:(|9:Загрузить|8:Очистить|9:Сохранить|1:)|10:Обработать|1:(|5:Старт|4:Стол|1:)|
GutterLineOn=1
Bitmaps=[]
Point(doEnablIdx)
link(MenuItemIdx,8532413:doEvent,[])
}
Add(MST_RowAction,791201,833,259)
{
Action=2
MSTControl="asd"
link(onChange,5297033:doColAction,[])
}
Add(MT_MultiData,9040420,518,252)
{
Count=1
link(onData1,4522093:doValue,[])
}
Add(HTTP_Get,12325246,665,252)
{
link(onDownload,16204259:doConvert,[])
link(onStop,2520169:doEvent1,[(704,279)(704,356)])
}
Add(StreamConvertor,16204259,721,259)
{
Mode=6
link(onResult,6483062:doAdd,[])
}
Add(FormatStr,10659343,616,252)
{
DataCount=1
Mask="https://linksly.co/api?api=ebe9fdbf04176bcb0a7d727e9c8857f8da8b5deb&url=%1&format=text"
link(onFString,12325246:doDownload,[])
}
Add(MT_AddData,6483062,784,259)
{
Count=3
InputMT=3
link(onAdd,791201:doRowAction,[])
link(Data1,13476879:Var1,[(790,250)(775,250)])
link(Data2,4522093:Value,[(797,243)(766,243)(766,297)(573,297)])
}
Add(Memory,4522093,567,252)
{
link(onData,10659343:doString,[])
}
Add(MST_Clear,14408073,252,119)
{
MSTControl="asd"
link(onChange,16128552:doEvent2,[])
}
Add(StatusBar,15598512,931,350)
{
Panels=#14:Всего - 0=100|19:Обработано - 0=100|
}
Add(MT_Add,8229165,868,350)
{
Data=Integer(0)
link(onAdd,8673821:doWork2,[])
}
Add(StrCat,4937689,826,350)
{
Str1="Всего - "
link(onStrCat,8229165:doAdd,[])
link(Str2,791201:Count,[])
}
Add(MT_Add,10775179,868,406)
{
Data=Integer(1)
link(onAdd,8673821:doWork3,[(914,412)])
}
Add(StrCat,16506296,826,406)
{
Str1="Обработано - "
link(onStrCat,10775179:doAdd,[])
link(Str2,11331378:Result,[(839,397)(818,397)(818,446)(776,446)])
}
Add(HubEx,8673821,910,350)
{
link(onEvent,15598512:doText,[])
}
Add(Hub,2520169,735,350)
{
InCount=2
link(onEvent1,4937689:doStrCat,[])
link(onEvent2,11331378:doOperation,[(760,363)(760,412)])
}
Add(LineBreak,13506759,665,357)
{
link(Out,2520169:doEvent2,[])
Primary=[13555651,-280,-245]
}
Add(Label,7002827,126,28)
{
Width=461
Height=40
Align=2
Caption=""
AutoSize=1
}
Add(Message,5897095,203,119)
{
Message="Вы уверены?"
Caption="Предупреждение"
Type=2
Point(onYES)
link(onYES,14408073:doClear,[(242,132)(242,125)])
}
Add(Edit,7065250,252,203)
{
Left=215
Top=10
Width=45
Text="500"
DataType=2
ClearAfterEnter=1
}
Add(Timer,15352547,336,252)
{
Interval=0
Enable=1
Point(doInterval)
Point(doAutoStop)
link(onTimer,8899381:doNext,[])
}
Add(Hub,5122062,196,231)
{
OutCount=4
link(onEvent1,16128552:doEvent3,[(291,237)(291,132)])
link(onEvent2,2868133:doData,[(228,244)(228,279)])
link(onEvent3,7089343:doData,[(221,251)(221,370)])
link(onEvent4,15352547:doTimer,[])
}
Add(DoData,2868133,252,273)
{
link(onEventData,15352547:doInterval,[(291,279)(291,272)])
link(Data,7065250:Text,[])
}
Add(DoData,7089343,259,364)
{
link(onEventData,15352547:doAutoStop,[(305,370)(305,279)])
link(Data,6542947:Count,[])
}
Add(Hub,16128552,350,112)
{
InCount=3
link(onEvent1,13555651:In,[])
link(onEvent2,8899381:doReset,[(375,125)(375,265)])
}
Add(Label,11383313,175,28)
{
Left=15
Top=10
Width=198
Height=20
Font=[MS Sans Serif,10,0,0,1]
Caption="Время между запросами в мс."
}
Add(Math,11331378,770,406)
{
Op2=1
Point(doClear)
link(onResult,16506296:doStrCat,[])
link(Op1,13476879:Var2,[])
}
Add(GetDataEx,13476879,770,301)
{
Angle=3
link(Data,8899381:Count,[(426,306)])
}