stopFlag=False;Echo[timeStart=Now,"start"];Module[{resp,xml,ds},While[!stopFlag&&earliest>DateObject[{2020,1,21,0,0,0.}],resp="t.me/s/nCoV2019"<>query//URLRead;If[Head[resp]=!=HTTPResponse,Return[resp,Module],If[resp["StatusCodeDescription"]=!="OK",Return[Failure["urlrd",resp["StatusCodeDescription"]],Module]]];xml=resp["Body"]//ImportString[#,"XMLObject"]&;ds=xml//pipe[ReplaceRepeated[XMLElement[t_,a_,d_]:>Inactive[Association]["tag"->t,"attr"->KeyMap[ToString,StringSplit[#,Whitespace]&/@Association[a]],"data"->d]],Activate,#〚2〛&,Dataset];query=ds["data",pipe[Select[#tag==="head"&],Flatten,First],"data",pipe[Select[#tag==="link"&],Select[MemberQ[#attr["rel"],"prev"]&]],pipe[#attr&,#href&]];ds[pipe["data",#〚1,1,1,1〛&,Apply@Join],tagSelector@"body","data",tagSelector@"main","data",classSelector@"tgme_container","data",classSelector@"tgme_channel_history","data",classSelector@"tgme_widget_message_wrap",pipe["data",#〚1,1〛&],;;,"data",classSelector@"tgme_widget_message_bubble",pipe["data",Thread],{pipe[classSelector@"js-message_text",First,"data",Cases[#,a_Association/;a["tag"]==="a",∞]&,Select[MatchQ[#data,{_String?(StringStartsQ["#"])}]&],Map[StringDrop[#data〚1〛,1]&]],pipe[classSelector@"js-message_footer",Cases[#,a_Association/;a["tag"]==="time",∞]&,First,"attr","datetime",First,DateObject]}]//Normal//(hashtags=Join[#,hashtags])&;earliest=hashtags〚1,2〛;Pause[3.]]]Echo[timeEnd=Now,"end"];