Вверх ↑
Ответов: 204
Рейтинг: 2
#1: 2018-04-19 20:27:28 ЛС | профиль | цитата
Схема готова. Вроде все что замыслил получилось. Наверняка из API youtube можно получить значительно больше, но я в эти дебри не лез. Если кто нибудь захочет. то дополнит моё творение. ))

Правда сам компонент сделать не получилось так как в схеме использовал нестандартный компонент HTTPClient. Тот что посоветовал Netspirit. Кстати спасибо ему отдельное. В нужный момент пнул меня в нужном направлении! ))

Собственно сама схема.

Add(MainForm,11567121,63,253)
{
Width=783
Height=526
}
Add(Button,10550242,385,386)
{
Left=90
Top=120
Caption="statistics"
link(onClick,5252399:doStatistics,[])
}
Add(Edit,16664417,532,259)
{
Left=10
Top=30
Width=310
Text=""
}
Add(Memo,7194871,777,379)
{
Left=330
Top=15
Width=425
Height=155
ScrollBars=3
}
Add(MultiElementEx,5252399,532,386)
{
link(APIKey,16664417:Text,[])
link(IDchannel,5506683:Text,[])
link(onStatistics,8203864:doEvent1,[])
link(onIine,7419020:doEvent1,[])
}
BEGIN_SDK
Add(EditMultiEx,2374688,21,21)
{
WorkCount=#56:doStatistics=получить общую статистику канала на youtube|50:doLive=проверить статус канала online-1, offline-0|
EventCount=#103:onStatistics=событие происходит после получения статитики канала и выводит полученный результат в поток|61:onIine=Наличие видеотрансляции на канале. 1-online, 0-offline|
VarCount=#22:NameChannel=Имя канала|27:description=описание канала|31:viewCount=Количество просмотров|39:subscriber Count=Количество подписчиков|44:videoCount=Количество видеороликов на канале|27:Name stream=Название стрима|33:DescriptionStream=Описание стрима|
DataCount=#58:APIKey=Ваш API key. Без него компонент работать не будет!|29:IDChannel=ID канла на youtube|
Width=1602
Height=900
VOffset=150
HOffset=250
link(doStatistics,10492591:doString,[(140,177)(140,301)])
link(doLive,11296329:doString,[(129,184)(129,441)])
link(NameChannel,10740601:Value,[(277,698)(580,698)])
link(description,616303:Value,[(284,707)(720,707)])
link(viewCount,16302207:Value,[(291,718)(860,718)])
link(subscriber Count,14210032:Value,[(298,727)(1000,727)])
link(videoCount,11997303:Value,[(305,739)(1140,739)])
link(Name stream,16052978:Value,[(312,879)(524,879)])
link(DescriptionStream,13852999:Value,[(319,890)(664,890)])
}
Add(HTTPClient,5090119,623,302)
{
@Hint=#27:Скачиваю, получаю ответы...|
Headers="Connection: Close"
Point(Proxy)
Point(Stream)
Point(doLoadStream)
link(onFinish,2355244:doCharset,[])
}
Add(Charset,2355244,700,309)
{
Type=7
link(onCharset,6023524:doEvent1,[])
}
Add(FormatStr,10492591,238,295)
{
@Hint=#30:запрос общей статистики канала|
Mask="https://www.googleapis.com/youtube/v3/channels?key=%1&part=snippet,contentDetails,statistics&id=%2\r\n "
link(onFString,13196461:doEvent1,[])
link(Str1,15607216:getVar,[])
link(Str2,6092438:getVar,[])
AddHint(63,-24,186,13,@Hint)
}
Add(LineBreakEx,9017796,271,63)
{
Caption="APIkey"
Type=3
link(_Data,2374688:APIKey,[])
}
Add(FormatStr,11296329,231,435)
{
@Hint=#32:запрос наличия онлайна на канале|
Mask="https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=%2&eventType=live&maxResults=1&order=date&type=video&key=%1\r\n"
link(onFString,6151234:doEvent1,[(282,441)(282,441)])
link(Str1,9608230:getVar,[])
link(Str2,4652379:getVar,[])
AddHint(67,29,194,13,@Hint)
}
Add(HubEx,5526199,574,302)
{
link(onEvent,5090119:doLoadString,[])
}
Add(LineBreakEx,6241923,278,42)
{
Caption="ID_channel"
Type=3
link(_Data,2374688:IDchannel,[])
}
Add(LineBreakEx,15607216,238,203)
{
Caption="APIkey"
Type=2
}
Add(LineBreakEx,6092438,245,231)
{
Caption="ID_channel"
Type=2
}
Add(LineBreakEx,9608230,231,350)
{
Caption="APIkey"
Type=2
}
Add(LineBreakEx,4652379,238,378)
{
Caption="ID_channel"
Type=2
}
Add(Hub,6023524,777,309)
{
link(onEvent1,2374688:onStatistics,[(1207,315)(1207,177)])
link(onEvent2,12577696:doEvent1,[(803,322)(803,395)(646,395)(646,475)])
}
Add(IndexToChanel,13203765,966,462)
{
Point(Index)
Point(Data)
link(onEvent1,1347603:doSearch,[(1038,468)(1038,578)(499,578)(499,629)])
link(onEvent2,8969744:doSearch,[])
link(Index,8064973:Value,[])
link(Data,2107277:Var3,[(979,450)(942,450)(942,525)])
}
Add(ChanelToIndex,98241,413,329)
{
link(onIndex,12330542:In,[])
}
Add(Memory,8064973,966,399)
{
Default=Integer(0)
}
Add(Hub,13196461,308,295)
{
link(onEvent1,98241:doWork1,[(368,301)(368,335)])
link(onEvent2,5526199:doWork2,[])
}
Add(Hub,6151234,301,435)
{
link(onEvent1,98241:doWork2,[(364,441)(364,342)])
link(onEvent2,5526199:doWork3,[(578,448)])
}
Add(LineBreak,3974112,917,399)
{
link(Out,8064973:doValue,[])
Primary=[12330542,-455,-70]
}
Add(StrList,352530,784,462)
{
}
Add(Hub,12577696,672,469)
{
OutCount=3
link(onEvent1,352530:doClear,[])
link(onEvent2,352530:doAdd,[(770,482)(770,468)])
link(onEvent3,12341515:doTrim,[(763,489)(763,545)])
}
Add(BlockFind,1347603,511,623)
{
IncludeBlock=1
StartBlock=""snippet": {
"title":"
EndBlock=","
link(onSearch,10740601:doValue,[])
link(Text,2445723:Var2,[])
}
Add(GetDataEx,2107277,784,520)
{
link(Data,352530:Text,[])
}
Add(Trim,12341515,784,539)
{
Mode=7
link(onTrim,4087216:doEvent1,[])
link(Text,2107277:Var2,[])
}
Add(Hub,4087216,833,539)
{
link(onEvent1,352530:doText,[(859,545)(859,517)(772,517)(772,489)])
link(onEvent2,13203765:doEvent,[(907,552)(907,468)])
}
Add(Memory,10740601,574,623)
{
link(onData,9612997:doSearch,[])
}
Add(BlockFind,9612997,644,623)
{
IncludeBlock=1
StartBlock=""description":"
EndBlock=""customUrl""
link(onSearch,616303:doValue,[])
link(Text,12817863:Var2,[])
}
Add(GetDataEx,12277095,644,520)
{
Angle=1
link(Data,2107277:Var1,[])
}
Add(Memory,616303,714,623)
{
link(onData,12687951:doSearch,[])
}
Add(BlockFind,12687951,791,623)
{
IncludeBlock=1
StartBlock=""viewCount": ""
EndBlock="","
link(onSearch,16302207:doValue,[])
link(Text,3657358:Var2,[])
}
Add(GetDataEx,12817863,644,588)
{
link(Data,12277095:Var2,[])
}
Add(Memory,16302207,854,623)
{
link(onData,11693323:doSearch,[])
}
Add(BlockFind,11693323,924,623)
{
IncludeBlock=1
StartBlock=""subscriberCount": ""
EndBlock="","
link(onSearch,14210032:doValue,[])
link(Text,6086141:Var2,[])
}
Add(GetDataEx,3657358,791,588)
{
Angle=3
link(Data,12817863:Var3,[])
}
Add(Memory,14210032,994,623)
{
link(onData,1954815:doSearch,[])
}
Add(BlockFind,1954815,1064,623)
{
IncludeBlock=1
StartBlock=""videoCount": ""
EndBlock="""
link(onSearch,11997303:doValue,[])
link(Text,6086141:Var3,[(1070,593)])
}
Add(GetDataEx,6086141,924,588)
{
Angle=3
link(Data,3657358:Var3,[])
}
Add(Memory,11997303,1134,623)
{
}
Add(LineBreak,7542560,371,805)
{
link(Out,12286289:doSearch,[])
Primary=[7937901,910,-336]
}
Add(BlockFind,8969744,1064,469)
{
IncludeBlock=1
StartBlock=""items": [
"
EndBlock="]"
link(onSearch,9782022:doValue,[])
}
Add(Memory,9782022,1113,469)
{
Default=String()
link(onData,3921705:doLength,[])
}
Add(Length,3921705,1169,469)
{
link(onLength,4134012:doCompare,[])
link(Str,9782022:Value,[(1175,457)(1151,457)(1151,513)(1119,513)])
}
Add(If_else,4134012,1225,469)
{
Type=4
Op2=Integer(6)
link(onTrue,7937901:In,[])
link(onFalse,2684509:doWork2,[])
link(Op1,3921705:Result,[(1231,457)(1203,457)(1203,513)(1175,513)])
}
Add(ChanelToIndex,15700560,1456,476)
{
link(onIndex,2374688:onIine,[(1556,482)(1556,184)])
}
Add(BlockFind,12286289,455,805)
{
IncludeBlock=1
StartBlock=""title":"
EndBlock=","
link(onSearch,16052978:doValue,[])
link(Text,5792305:Var2,[])
}
Add(Memory,16052978,518,805)
{
link(onData,12201226:doSearch,[])
}
Add(BlockFind,12201226,588,805)
{
IncludeBlock=1
StartBlock=""description":"
EndBlock=","
link(onSearch,13852999:doValue,[])
link(Text,7321138:Var2,[])
}
Add(Memory,13852999,658,805)
{
link(onData,6498649:doSearch,[])
}
Add(LineBreakEx,14012239,434,539)
{
Caption="datach"
Type=3
link(_Data,2445723:Var1,[(440,525)])
}
Add(GetDataEx,2445723,511,520)
{
Angle=1
link(Data,12277095:Var1,[])
}
Add(LineBreakEx,10893769,455,749)
{
Caption="datach"
Type=2
}
Add(GetDataEx,5792305,455,770)
{
link(Data,10893769:getVar,[])
}
Add(BlockFind,6498649,735,805)
{
IncludeBlock=1
StartBlock=""liveBroadcastContent": ""
EndBlock="""
link(onSearch,12451010:doCompare,[])
link(Text,7321138:Var3,[(741,775)])
}
Add(GetDataEx,7321138,588,770)
{
Angle=3
link(Data,5792305:Var3,[])
}
Add(If_else,12451010,805,805)
{
Op2=String(live)
link(onTrue,7753018:In,[])
link(onFalse,8306089:In,[])
}
Add(LineBreak,11869638,1400,483)
{
link(Out,15700560:doWork2,[])
Primary=[7753018,-539,322]
}
Add(LineBreak,16706383,1351,462)
{
link(Out,2684509:doWork1,[(1439,468)])
Primary=[8306089,-448,350]
}
Add(HubEx,2684509,1435,476)
{
link(onEvent,15700560:doWork1,[])
}
END_SDK
Add(Hub,8203864,686,386)
{
OutCount=3
link(onEvent1,7194871:doClear,[])
link(onEvent2,7194871:doAdd,[(728,399)(728,385)])
link(onEvent3,15749535:doWork2,[])
}
Add(Label,4418064,385,70)
{
Left=15
Top=10
Width=41
Height=17
Caption="API key"
}
Add(Edit,5506683,539,312)
{
Left=10
Top=85
Width=310
Text=""
}
Add(Label,15703479,425,68)
{
Left=15
Top=65
Width=56
Height=17
Caption="ID channel"
}
Add(Button,3854230,443,393)
{
Left=165
Top=120
Caption="online"
link(onClick,5252399:doLive,[])
}
Add(Label,14208315,469,70)
{
Left=20
Top=175
Width=220
Caption="название канала"
}
Add(Label,6658984,511,70)
{
Left=20
Top=220
Width=170
Caption="описание канала"
}
Add(Edit,664144,532,791)
{
Left=20
Top=190
Width=260
link(Str,5252399:NameChannel,[])
}
Add(Memo,1264681,539,735)
{
Left=15
Top=235
Width=270
ScrollBars=3
link(Str,5252399:description,[])
}
Add(LineBreak,6720373,441,742)
{
link(Out,8186753:doEvent1,[])
Primary=[6953037,-196,-189]
}
Add(Hub,8186753,490,742)
{
link(onEvent1,1264681:doClear,[])
link(onEvent2,1264681:doAdd,[(522,755)(522,741)])
}
Add(LineBreak,2890620,56,546)
{
link(Out,15844709:doDeferredEvent,[])
Primary=[7896336,672,-146]
}
Add(Hub,2860240,168,546)
{
OutCount=7
link(onEvent1,10180981:In,[])
link(onEvent2,6953037:In,[])
link(onEvent3,15145382:In,[])
link(onEvent4,6911954:In,[])
link(onEvent5,4981642:In,[])
link(onEvent6,5112429:In,[])
link(onEvent7,4981925:In,[])
}
Add(LineBreak,4067009,483,791)
{
link(Out,664144:doText,[])
Primary=[10180981,-280,-245]
}
Add(Label,1232803,553,70)
{
Left=25
Top=330
Width=215
Caption="количество просмотров на канале"
}
Add(Edit,11154435,546,686)
{
Left=25
Top=345
Width=175
link(Str,5252399:viewCount,[])
}
Add(LineBreak,4215978,490,686)
{
link(Out,11154435:doText,[])
Primary=[15145382,-287,-126]
}
Add(Label,13600223,595,70)
{
Left=25
Top=375
Width=215
Caption="количество подписчиков"
}
Add(Edit,736924,553,637)
{
Left=25
Top=390
Width=170
link(Str,5252399:subscriber Count,[])
}
Add(LineBreak,10140022,497,637)
{
link(Out,736924:doText,[])
Primary=[6911954,-252,-70]
}
Add(LineBreak,8589158,497,588)
{
link(Out,1645045:doText,[])
Primary=[4981642,-294,-14]
}
Add(Label,9726737,639,70)
{
Left=25
Top=420
Width=180
Height=17
Caption="количество видеороликов"
}
Add(Edit,16375362,567,539)
{
Left=320
Top=285
Width=430
link(Str,5252399:Name stream,[])
}
Add(LineBreak,16383049,497,539)
{
link(Out,16375362:doText,[])
Primary=[5112429,-252,42]
}
Add(Label,3163815,678,70)
{
Left=325
Top=265
Width=92
Height=17
Caption="название стрима"
}
Add(Memo,5380066,574,469)
{
Left=320
Top=340
Width=420
Height=120
ScrollBars=3
link(Str,5252399:DescriptionStream,[])
}
Add(LineBreak,15969612,462,476)
{
link(Out,2161287:doEvent1,[])
Primary=[4981925,-259,112]
}
Add(Hub,2161287,511,476)
{
link(onEvent1,5380066:doClear,[])
link(onEvent2,5380066:doAdd,[(557,489)(557,475)])
}
Add(Label,8953252,718,68)
{
Left=325
Top=320
Width=92
Height=17
Caption="описание стрима"
}
Add(Label,10078649,1117,397)
{
Left=495
Top=195
Width=92
Height=17
Caption="online"
Point(doBringToFront)
}
Add(LED,8037558,1120,350)
{
Left=520
Top=225
}
Add(LineBreak,6469772,924,364)
{
link(Out,399814:doEvent,[])
Primary=[3538987,-280,29]
}
Add(Label,8008843,1117,313)
{
Left=495
Top=195
Width=92
Height=17
Caption="offline"
Point(doBringToFront)
}
Add(IndexToChanel,399814,980,364)
{
link(onEvent1,567041:doEvent1,[(1047,370)(1047,326)])
link(onEvent2,12858881:doEvent1,[(1048,377)(1048,403)])
}
Add(Hub,7419020,602,393)
{
link(onEvent1,3538987:In,[])
link(onEvent2,15749535:doWork1,[(632,406)(632,440)(711,440)])
}
Add(HubEx,15749535,707,400)
{
link(onEvent,7896336:In,[])
}
Add(Hub,567041,1078,320)
{
link(onEvent1,8008843:doBringToFront,[])
link(onEvent2,8037558:doOff,[(1106,333)(1106,363)])
}
Add(Hub,12858881,1078,397)
{
link(onEvent1,8037558:doOn,[(1106,403)(1106,370)])
link(onEvent2,10078649:doBringToFront,[])
}
Add(DeferredEvent,15844709,105,546)
{
Delay=31
link(onDeferredEvent,2860240:doEvent1,[])
}
Add(Edit,1645045,560,588)
{
Left=25
Top=435
Width=170
link(Str,5252399:videoCount,[])
}

карма: 1

0
Редактировалось 1 раз(а), последний 2018-04-19 20:28:06