Basically i have update the lua script for todo.txt that jsmorley(TQ for it) introduce to do the following
a) extract unique context eg. @call @computer @home (something like smartlist)
b) extract unique project eg. +rmtr +inbox
c) display number of task based on context eg @office = 25 task
d) display list based on context by leftclick context smartlist
Please mind that it is still raw n i just learn lua code 24 hours ago. So bare with me.
TestDummy.lua
Code: Select all
PROPERTIES =
{
SettingInSkin = 0;
}
function Initialize()
sFileName = SELF:GetOption('FileName')
sContext = SKIN:GetVariable('CContext')
end -->Initialize
function Update()
for i = 1, 5 do
SKIN:Bang('!SetOption Meter'..i..' Text \"\"')
end
hFile = io.open(sFileName)
if not hFile then print('File error'); return 'File error'; end
io.close(hFile)
if sContext == '' then SKIN:Bang('!Refresh'); return 'No input'; end
n=0
tData = {}
for sLine in io.lines(sFileName) do
n=n+1
if string.find(sLine,sContext) then
sline2=string.sub(sLine,11) --> remove date position 1-11
table.insert(tData,n..")"..sline2) --> insert line number in front
end
end
NewNumber = table.getn(tData) --> calc no of line containing context ToDotype
for i = 1, (#tData < 6) and #tData or 5 do
SKIN:Bang('!SetOption Meter'..i..' Text \"'..tData[i]..'\"')
end
t2={}
context = {}
for sLine in io.lines(sFileName) do
for context in string.gmatch(sLine,"@[%w]+") do --> extract context label
if not t2[context] then
table.insert(t2,context)
t2[context] = true
end
end
end
ContextNum = table.getn(t2) --> calc no of context
for i = 1, (#t2 < 9) and #t2 or 8 do
SKIN:Bang('!SetOption CMeter'..i..' Text \"'..t2[i]..'\"')
SKIN:Bang('!SetOption CMeter'..i..' LeftMouseUpAction """!Execute [!WriteKeyValue Variables CContext \"'..t2[i]..'\"][!Refresh]"""')
end
t3={}
context = {}
for sLine in io.lines(sFileName) do
for project in string.gmatch(sLine,"\+[%w]+") do --> extract project label
if not t3[project] then
table.insert(t3,project)
t3[project] = true
end
end
end
ProjectNum = table.getn(t3)
for i = 1, (#t3 < 9) and #t3 or 8 do
SKIN:Bang('!SetOption Project'..i..' Text \"'..t3[i]..'\"')
end
return NewNumber
end -->Update
Code: Select all
[Rainmeter]
Update=1000
DynamicWindowSize=1
[Variables]
color.secondary=255,255,255,25
color.primary=255,255,255,255
color.background=0,128,255,40
E=2.7182818
fontname=Trebuchet MS
textSize=8
colorBar=235,170,0,255
colorText=255,255,255,205
CContext=@idea
[Background]
Meter=IMAGE
SolidColor=0,0,0,100
X=0
Y=0
W=(#SCREENAREAWIDTH#/6)
H=#SCREENAREAHEIGHT#
[MeasureScript]
Measure=Script
ScriptFile="#CURRENTPATH#Testdummy.lua"
FileName=D:\Dropbox\My_Text\todo.txt
ToDoType=#CContext#
UpdateDivider=-1
[styleLeftText]
StringAlign=LEFT
StringCase=NONE
StringStyle=BOLD
StringEffect=SHADOW
FontEffectColor=0,0,0,20
FontColor=#colorText#
FontFace=#fontname#
FontSize=#textSize#
AntiAlias=1
X=0
Y=2R
SolidColor=0,0,0,1
AntiAlias=1
[TextStyle]
X=0
Y=2R
FontFace=#fontname#
FontSize=11
FontColor=#colorText#
SolidColor=0,0,0,1
AntiAlias=1
[MeterHeader]
Meter=String
MeterStyle=TextStyle
X=10
Y=60
H=18
W=(#SCREENAREAWIDTH#/6-20)
SolidColor=0,0,0,200
Text=Enter Search
LeftMouseUpAction=!CommandMeasure "MeasureInput" "ExecuteBatch 1"
[MeasureInput]
Measure=Plugin
Plugin=InputText.dll
X=0
Y=0
H=18
W=235
FontFace=Arial
FontSize=11
FontColor=255,255,255,255
SolidColor=0,0,0,255
Command1=!Execute [!SetOption MeasureScript ToDoType "$UserInput$][!UpdateMeasure MeasureScript #CURRENTCONFIG#]
[ToDoTypeTitle]
Meter=String
MeasureName=MeasureScript
StringAlign=CENTER
StringCase=UPPER
StringStyle=BOLD
StringEffect=SHADOW
FontEffectColor=0,0,0,50
FontColor=#colorText#
FontFace=#fontname#
FontSize=10
AntiAlias=1
ClipString=0
X=(#SCREENAREAWIDTH#/12)
W=(#SCREENAREAWIDTH#/12)
Text=#CContext# · %1
Y=20r
[Meter1]
Meter=String
MeterStyle=styleLeftText
Y=5R
[Meter2]
Meter=String
MeterStyle=styleLeftText
[Meter3]
Meter=String
MeterStyle=styleLeftText
[Meter4]
Meter=String
MeterStyle=styleLeftText
[Meter5]
Meter=String
MeterStyle=styleLeftText
[CMeter1]
Meter=String
MeterStyle=styleLeftText
Y=5R
[CMeter2]
Meter=String
MeterStyle=styleLeftText
[CMeter3]
Meter=String
MeterStyle=styleLeftText
[CMeter4]
Meter=String
MeterStyle=styleLeftText
[CMeter5]
Meter=String
MeterStyle=styleLeftText
[CMeter6]
Meter=String
MeterStyle=styleLeftText
[CMeter7]
Meter=String
MeterStyle=styleLeftText
[CMeter8]
Meter=String
MeterStyle=styleLeftText
[Project1]
Meter=String
MeterStyle=styleLeftText
Y=5R
[Project2]
Meter=String
MeterStyle=styleLeftText
[Project3]
Meter=String
MeterStyle=styleLeftText
[Project4]
Meter=String
MeterStyle=styleLeftText
[Project5]
Meter=String
MeterStyle=styleLeftText
[Project6]
Meter=String
MeterStyle=styleLeftText
[Project7]
Meter=String
MeterStyle=styleLeftText
[Project8]
Meter=String
MeterStyle=styleLeftText