Here's the code
quotes.ini
Code: Select all
[Rainmeter]
Update=1000
DynamicWindowSize=1
[Variables]
Seconds=5
Font=Gabriola
CharsPerLine=48
HeightPerLine=56
MeterHeight=56
[MeasureLuaScript]
Measure=Script
ScriptFile=quotes.lua
QuoteFile=%path%quotes.txt
UpdateDivider=1
[QuotationStyle]
FontColor=255,255,255,255
FontSize=30
StringAlign=Left
FontFace=Gabriola
Antialias=1
ClipString=1
Prefix="
Postfix="
[AuthorStyle]
FontColor=0,0,0,204
FontSize=15
StringAlign=Left
StringStyle=BOLD
StringCase=UPPER
StringEffect=SHADOW
FontEffectColor=255,255,255,128
FontFace=Gabriola
Antialias=1
Prefix=—
[QuotationText]
Meter=String
MeterStyle=QuotationStyle
X=0
Y=0
W=800
H=56
DynamicVariables=1
[QuotationAuthor]
Meter=String
MeterStyle=AuthorStyle
X=50
Y=R
quotes.lua
Code: Select all
PROPERTIES =
{
QuoteFile= "";
}
function Initialize()
iCharsPerLine = SKIN:GetVariable('CharsPerLine')
iHeightPerLine = SKIN:GetVariable('HeightPerLine')
tFileLines = {}
for line in io.lines(PROPERTIES.QuoteFile) do
table.insert(tFileLines, line)
end
iTotal = table.maxn(tFileLines)
end -- function Initialize
function Update()
iNewLine = math.random(iTotal)
sText, sAuthor = string.match(tFileLines[iNewLine], '(.*) %-(.*)')
iLen = string.len(sText) + 2
iLines = math.ceil(iLen / iCharsPerLine)
iHeight = iLines * iHeightPerLine
SKIN:Bang('!SetOption QuotationText Text \"'..sText..'\"')
SKIN:Bang('!SetOption QuotationAuthor Text \"'..sAuthor..'\"')
SKIN:Bang('!SetVariable MeterHeight '..iHeight)
return sText..' -'..sAuthor
end -- function Update