List of commits:
Subject Hash Author Date (UTC)
implement URL constructing (complement URLs) f4798ed246e9c6d4b1a611b48ed5a7eb28c8938d Alex 2022-07-14 01:16:31
parser part of Explore is ready 87b01db3296eab71b2a510c4d0924127efac1a7f Alex 2022-07-13 22:36:39
prepare code for Explore 76b6472a8ad28564a55c6bd39f55ba050dd3599f Alex 2022-07-13 19:05:02
advance Explore window by statusbar and Stop button 8f7ae012ede287fc6e20fd5727fd215293c75b25 Alex 2022-07-13 17:24:24
prepare Explore window 9da7bcfcc06c986dd4ece8813096a9086ad690fc Alex 2022-07-13 01:59:32
comment out Edit option: není na to podpora v MUI Royale. Posunout polo¾ky menu, aby kursor nedopadal poøad na Remove 46c2f3cbbc2912eefb9504c7632f65ed57bc47e5 Alex 2022-07-12 23:14:48
fix code formatting for remove requesters 535d4b6515a4744e0b6af6090daadbb85f38b8cf Alex 2022-07-12 23:04:43
implement adding of single feed e938d0a6d769c7caf876dfdba9f43ce668eb4690 Alex 2022-07-12 22:05:10
implement group adding d347e25e93e94f711c4098fecc9775af22eb7309 Alex 2022-07-12 20:12:00
make parser to work somehow bb968a00680246434eb1f9795ebde4babea3fb05 Alex 2022-07-12 05:19:43
some preparations for parsing 0259ef32db69fdb45bc9e67d88c74aca4ae69ce6 Alex 2022-07-12 03:59:45
prepare png icon b7dc494acb640d92c5b7b49bc2ee93fd5a0d521c Alex 2022-07-11 07:17:47
fetching is ready 0d01c38238a2ea7e39bc671de1997294231d8549 Alex 2022-07-11 06:37:06
read feeds from feeds.json U¾ivatel asi bude chtit mít své fidy u sebe de14a1e9f5a99f79e44985073df04e89bae2c116 Alex 2022-07-11 01:26:52
prepare default feeds d2b45f0007c30da84662b8b2a1f2118d03e30e1f Alex 2022-07-11 01:25:58
prepare Lock&Unlock f76041ef4fa2b6d5301afb34bda5de13f8ff2701 Alex 2022-07-10 00:37:38
prepare downloading routines f12d337da75c3cefe4ef0ccb3f08472e7701b058 Alex 2022-07-09 23:52:36
move default feeds to feeds.hws 6efc0f7c1767a2feba618938c8f83eab43f93b0e Alex 2022-07-09 14:16:44
set up EmptyNodes attribute 41e19a0974fbf63f959fe7e3135d2efb9cb48ce6 Alex 2022-07-09 11:44:03
disable icon menu 540099f84a9d1a567dd079ca8ba5ac667ec8945f Alex 2022-07-08 23:37:47
Commit f4798ed246e9c6d4b1a611b48ed5a7eb28c8938d - implement URL constructing (complement URLs)
Author: Alex
Author date (UTC): 2022-07-14 01:16
Committer name: Alex
Committer date (UTC): 2022-07-14 01:16
Parent(s): 87b01db3296eab71b2a510c4d0924127efac1a7f
Signer:
Signing key:
Signing status: N
Tree: 0e4493b03645f5a6b17d7dcd834f256fa3ff88c9
File Lines added Lines deleted
AppWindow.xml 1 0
IvoRSS.hws 10 8
lurk.hws 38 18
File AppWindow.xml changed (mode: 100755) (index 9547701..ed01a49)
91 91 <column title="Title"/> <column title="Title"/>
92 92 <column title="Relationship"/> <column title="Relationship"/>
93 93 <column title="Type"/> <column title="Type"/>
94 <column title="URL constructed"/>
94 95 </listview> </listview>
95 96 <text id="lurkstatus"/> <text id="lurkstatus"/>
96 97 <hgroup> <hgroup>
File IvoRSS.hws changed (mode: 100755) (index cccab73..15f9feb)
... ... Function p_MUIEvent(msg)
164 164
165 165
166 166 Case "Listview": Case "Listview":
167 ;assert(msg.Attribute = "Active")
168 ;assert(msg.ID = "articles")
169 If msg.TriggerValue >= 0
170 Local chosen_item = items_list[msg.TriggerValue]
171 mui.Set("item_title", "Contents", chosen_item.title)
172 mui.Set("textfield", "Text", chosen_item.description)
173 EndIf
167 Switch msg.ID
168 Case "articles":
169 If msg.TriggerValue >= 0
170 Local chosen_item = items_list[msg.TriggerValue]
171 mui.Set("item_title", "Contents", chosen_item.title)
172 mui.Set("textfield", "Text", chosen_item.description)
173 EndIf
174
175 EndSwitch
176
174 177
175 178 Case "Button": Case "Button":
176 179 Switch msg.ID Switch msg.ID
 
... ... InstallEventHandler({MUIRoyale = p_MUIEvent})
351 354
352 355 p_StartUpLoading() p_StartUpLoading()
353 356
354
355 357 Repeat Repeat
356 358 WaitEvent WaitEvent
357 359 Forever Forever
File lurk.hws changed (mode: 100755) (index 66e7df1..9f5ef44)
... ... EndFunction
30 30
31 31 ;č stáhnout soubor ;č stáhnout soubor
32 32 Function lurk:Explore(url$) Function lurk:Explore(url$)
33 url$ = StripStr(url$)
33 34 self.PleaseStop = False self.PleaseStop = False
34 35 ;č zjednodušená kontrola, pokud řetězec obsahuje procenta, ;č zjednodušená kontrola, pokud řetězec obsahuje procenta,
35 36 ;č považujeme ho za "eskejpnutý". ;č považujeme ho za "eskejpnutý".
 
... ... Function lurk:Explore(url$)
54 55 p:setbase(url$) p:setbase(url$)
55 56 ;č ten parser trefí šlak, uvidí-li CO má zpracovat ;č ten parser trefí šlak, uvidí-li CO má zpracovat
56 57 p:Parse(UnrightStr(html$, FindStr(html$, "<link", False))) p:Parse(UnrightStr(html$, FindStr(html$, "<link", False)))
57 DebugPrint(p:getbase())
58
58 59 ;č html-ko nemůže nezpůsobit chybu. ;č html-ko nemůže nezpůsobit chybu.
59 60 ;č nemá cenu je hlídat ;č nemá cenu je hlídat
60 61 Local err_code = ?p:Close() Local err_code = ?p:Close()
 
... ... EndFunction
69 70
70 71
71 72 Function lurk:Clear() Function lurk:Clear()
72 mui.Set("channel_title", "Contents", "")
73 mui.Set("channel_title", "ContextMenu", "(none)")
74
75 mui.Set("channel_description", "Contents", "")
76 mui.Set("channel_description", "ContextMenu", "(none)")
77
78
79 mui.Set("articles", "Quiet", True)
80 For Local k = 1 To mui.Get("articles", "Entries")
81 mui.DoMethod("articles", "Remove", "Last")
73 mui.Set("foundfeeds", "Quiet", True)
74 For Local k = 1 To mui.Get("foundfeeds", "Entries")
75 mui.DoMethod("foundfeeds", "Remove", "Last")
82 76 Next Next
83 mui.Set("articles", "Quiet", False)
77 mui.Set("foundfeeds", "Quiet", False)
78 EndFunction
84 79
85 mui.Set("item_title", "Contents", "")
86 mui.Set("item_title", "ContextMenu", "(none)")
80 ;č zoufalý pokus rekonstituce adresy
81 ;č nikdy nemůže být 100% funkční
82 ;č kvůli případným přesměrováním
83 Function p_reconstructURL(base$, href$)
84 ;č Pro jistotu. Přece i webmaster může nahodit mezer do atributů!
85 href$ = StripStr(href$)
86 ;č baseUrl je jíž dříve oříznuty
87
88 ;č pokud href zdá být celou adresou, tak není co řešit
89 If StartsWith(href$, "http") Then Return(href$)
90 ;č pokud href začína lomitkem, tak se vztahuje ke kořenu serveru
91 If StartsWith(href$, "/")
92 ;č uživatel může zadat normální adresu na http://,
93 ;č nebo bůhvíco, co může začínat jménem serveru...
94 Local hostpos = FindStr(base$, "//") + 2
95 Local hostend = FindStr(base$, "/", False, hostpos)
96 If hostend = -1
97 ;č bez lomítka na konci.
98 Return(base$ .. href$)
99 Else
100 ;č s dostatkem lomítek.
101 Return(LeftStr(base$, hostend) .. href$)
102 EndIf
103 EndIf
104
105 ;č bez lomítka, pokud vůbec něčemu rozumím, vztahuje k aktuální složce?
106 ;č Jenomže ani čert se nevyzná, co je to složka v moderním webu
107 ;č (víz. poznámku ohledně přesměrování)
108 Return(TrimStr(base$, "/", True) .. "/" .. href$)
87 109
88 mui.Set("textfield", "Text", "")
89 mui.Set("textfield", "ContextMenu", "(none)")
90 110 EndFunction EndFunction
91 111
92 112
93 113 Function lurkStartElement(p, name$, attrs) Function lurkStartElement(p, name$, attrs)
94 DebugPrint(name$)
95 114 CheckEvents() CheckEvents()
96 115 If lurk.PleaseStop If lurk.PleaseStop
97 116 p:Stop() p:Stop()
 
... ... Function lurkStartElement(p, name$, attrs)
123 142 item.href, item.href,
124 143 item.title, item.title,
125 144 item.rel, item.rel,
126 attrs.type)
145 attrs.type,
146 p_reconstructURL(p:getbase(), item.href))
127 147 EndSwitch EndSwitch
128 148 EndIf EndIf
129 149 EndSwitch EndSwitch
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/iam-git/IvoRSS

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/iam-git/IvoRSS

Clone this repository using git:
git clone git://git.rocketgit.com/user/iam-git/IvoRSS

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main