Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Anbefalte innlegg

Skrevet

Tegneserier er gøy. Automatiske tegneserier er selvfølgelig enda gøyere. Tidligere var det bare å linke bildet på nettet, men VG ville gjøre det litt vanskeligere for oss. Men det lar seg ordne.

 

Aller først trenger vi SP_ID'en din. Logg inn på VG (det holder med en gratis-konto), og trykk F12 (eller åpne Developer Console)

Så finner du "Application" på menyen øverst, finner så cookies, og velger "www.vg.no". Dobbelttrykk på tekstfeltet etter "SP_ID" og kopier hele denne lange, uforståelige teksten til et sted.

 

image.png

 

 

 

NB! Dette scriptet omfatter sletting av filer, og kan potensielt gå ad undas. Det er selvfølgelig testet en del av meg, men som alltid: Ta backup først!

 

Scriptet er her:

Tegneserie.vb

    Sub Main(ByVal input As Object)
        'Moskus 2019
        'Parametre: device_ID|Tegneserie
        'Serie-alternativer: Pondus, Lunch, Hjalmar, Tegnehanne
        Dim devID As String = input.ToString.Split("|")(0)
        Dim serie As String = input.ToString.Split("|")(1)
        Dim deleteFiles As Boolean = True
        Dim SP_ID As String = "DIN_LANGE_SPID_STRENG_HER"


        Dim directoryName As String = hs.GetAppPath & "/html/images/Tegneserier/"

        'Check if "Tegneserier" exits
        If (Not System.IO.Directory.Exists(directoryName)) Then System.IO.Directory.CreateDirectory(directoryName)

        'Delete local files
        If deleteFiles Then
            For Each deleteFile As String In System.IO.Directory.GetFiles(directoryName, serie.ToLower & "*.*", System.IO.SearchOption.TopDirectoryOnly)
                System.IO.File.Delete(deleteFile)
            Next
        End If

        Dim remoteFile As String = ""
        Dim filename As String = serie.ToLower & "_" & Now.Date.ToString("yyMMdd") & ".jpg"
        Dim localFile As String = hs.GetAppPath & "/html/images/Tegneserier/" & filename


        Dim dateFormat As String = Now.Year & "-" & Now.Month.ToString("00") & "-" & Now.Day.ToString("00")
        Select Case serie.ToLower
            Case = "pondus"
                remoteFile = "https://www.vg.no/tegneserier/api/images/pondus/" & dateFormat
            Case = "lunch"
                remoteFile = "https://www.vg.no/tegneserier/api/images/lunch/" & dateFormat
            Case = "hjalmar"
                remoteFile = "https://www.vg.no/tegneserier/api/images/hjalmar/" & dateFormat
            Case = "tegnehanne"
                remoteFile = "https://www.vg.no/tegneserier/api/images/tegnehanne/" & dateFormat
        End Select

        If remoteFile <> "" Then
            Try

                Using client As New System.Net.WebClient
                    Net.ServicePointManager.SecurityProtocol = Net.SecurityProtocolType.Tls12
                    client.Headers.Add(Net.HttpRequestHeader.Cookie, "SP_ID=" & SP_ID)
                    client.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0")
                    client.DownloadFile(remoteFile, localFile)
                    client.Dispose()
                End Using
            Catch ex As Exception
                hs.WriteLog("Tegneserier", "Ex: " & ex.ToString)
            End Try

            Dim dateValue As Integer = CInt(Now.Date.ToString("yyMMdd"))
            hs.SetDeviceString(devID, "<img src='/images/HomeSeer/status/custom.gif' />", True)
            hs.SetDeviceString(devID, "<img src='./images/Tegneserier/" & filename & "' width='300px' />", False)
            hs.SetDeviceValueByRef(devID, dateValue, True)

        Else
            hs.WriteLog("Tegneserie", "RemoteFile ikke spesifisert for tegneserie: " & serie)
        End If
    End Sub

Du legger inn SP_ID-strengen din istedenfor "DIN_LANGE_SPID_STRENG_HER".

 

I tillegg må du lage en device pr. tegneserie du er interessert i. Som i nyhetsscriptet er dette en "Status Only" device.

 

Så er det bare å sette opp eventet. Tegneseriene blir oppdatert kl. 08:00, så 08:15 er sikkert et bra tidspunkt. Kun ukedager og lørdager. Huk av "Wait for Script to finish" og "Only allow singe instance". Så repeter for hver tegneserie.

 

Parameter er dev_ID|Tegneserie, f.eks. 3689|Pondus.

image.png

 

image.png

 

 

... som gir oss:

image.png

 

Bredden er satt til 300px for at hele tegneserien skal dukke opp i Device Management, men dette er ikke en begrensning i f.eks. HStouch. :)

  • Like 2
  • Haha 2
Skrevet

Kjekt. 

Fikk det til hos meg, men måtte endre

Quote

Using client = New System.Net.WebClient

 til 
 

Quote

Using client as New System.Net.WebClient

 

  • Like 1
Skrevet
3 hours ago, Moskus said:

Ah. LInux?

 

Greit å ta med seg, takk.

Ja, stemmer . Raspberry pi 4. 

Da forstod jeg hvorfor og . Logisk nok .

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.