Ecco la guidaTV gratuita per sky!

Qualcuno conosce il modo per generare un file xml da caricare in EyeTV partendo dal file excel palinsesti-sky-340 di jumpjack.

Grazie
Ciao
 
Ultima modifica:
Vorrei provare a far funzionare il programma anche su mac.

Ammesso che trovi un programmino che scarichi un file da internet da riga di comando (cosa che credo sia ampiamente fattibile) in quale zona della macro dovrò apportare le modifiche per disattivare la dll di windows che si occupa attualmente di svolgere tale mansione?
Grazie
 
marpar ha scritto:
Vorrei provare a far funzionare il programma anche su mac.

Ammesso che trovi un programmino che scarichi un file da internet da riga di comando (cosa che credo sia ampiamente fattibile) in quale zona della macro dovrò apportare le modifiche per disattivare la dll di windows che si occupa attualmente di svolgere tale mansione?
Grazie
All'inizio della macro viene dichiarata la sub URLDownloadToFile collegandola a una DLL di Windows, che ovviamente su MAC non c'e', quindi è necessario creare una URLDownloadToFile apposita per Mac; forse si puo' fare facendogli lanciare con VBA.shell() (ammesso che su MAC funzioni) un programma esterno che scarica un file (wget?).
Ma io non ho un MAC su cui provare.
 
VBA.shell() su MAC non funziona ma si può aggirare con Applescript come descritto qui
 
Si potrebbe provare ad usare il comando curl che a differenza di wget è già preinstallato su MAC come descritto qui

Jumpjack riesci a darmi una mano?
Di RapidQ e VBA non capisco una mazza... ma vorrei provare a modificare il tuo ottimo programma in modo che funzioni in ambiente MAC.:D

Potrebbe essere una buona scusa per cominciare a programmare....
Almeno a provarci...
 
Ultima modifica:
marpar ha scritto:
Si potrebbe provare ad usare il comando curl che a differenza di wget è già preinstallato su MAC come descritto qui

Jumpjack riesci a darmi una mano?
Proviamo. In finale, come dicevo, l'unica incompatibilità dovrebbe essere quella librera, poi si tratta solo di giocare con file e stringhe con le funzioni standard di VBA: se funzionano anche in Excel per Mac, è facile!

La macro scarica vari file, ma il meccanismo è sempre lo stesso:

Codice:
Tentativi = Tentativi + 1
        errcode = URLDownloadToFile(0, strurl, nomefile, 0, 0)
        If errcode = 0 Then
            'Debug.Print "OK"
        Else
            If Tentativi < MAX_Tentativi Then
                GoTo retry3:
            Else
                Debug.Print "############ Scaricamento dati genere '" + genere(G), "': ERRORE ", Hex$(errcode)
                errcode = 0
            End If
        End If
Prima di entrare in questo loop, "strurl" deve contenere l'URL completo del file, "nomefile" deve contenere il nome che il file dovrà avere in locale (senza percorso, stabilito altrove nella macro).
Se lo scaricamento ha successo, URLDownload() restituisce zero.

Quindi l'URLDownload() per Mac dovrebbe essere fatta così:
- lancia programma esterno di scaricamento
- controlla se il file scaricato è ora presente in locale
- se è presente, controlla che abbia lunghezza "decente"
oppure
- se possibile, controlla il codice di ritorno del programma esterno
- se il file è stato scaricato correttamente, restituisci zero.

Nel forum prima linkato c'è il codice per lanciare un programma esterno, che qui riporto:

Codice:
Function ShellAndWaitMac(cmd As String) As Boolean 
  ' Run a shell command cmd in the workbook directory, waiting for  completion  
 ' To embed spaces within cmd, enclose the string in apostrophes, e.g., 'name with space' 
  ' 
  Dim scriptCmd As String ' Macscript command 
  Err.Clear 
  On Error GoTo scriptError 

  ' Get current workbook directory 
  ' VBA uses pre-OS-X, colon-delimited paths, e.g., TrustyG4 OS:Users:rob:Desktop 
  ' so use Applescript to convert to POSIX name, e.g., /Users/rob/Desktop   
  Dim posixcwd As String 
  scriptCmd = "POSIX path of """ & ThisWorkbook.path & """" 
  posixcwd = MacScript(scriptCmd) 

  ' **** Compose UNIX shell command, then wrap it Applescript and execute  ****
  Dim shcd As String, shcmd As String 
  Dim result As String 

  ' cd to current POSIX dir, quoted in case of embedded spaces 
  shcd = "cd " & "'" & posixcwd & "'" 

  ' add the command and its arglist 
  shcmd = "; " & cmd 

  ' embed for Applescript 
  scriptCmd = "do shell script """ & shcd & shcmd & """" 

 ' ********* Command launch *******
  result = MacScript(scriptCmd) ' result contains stdout, should you care 

  ShellAndWaitMac = True 
  Exit Function 

  ' 
  ' Error, presumably executing MacScript() 
  scriptError: 
    Dim Msg As String 
    Msg = "Error # " & Str(Err.Number) & " from " _ 
                         & Err.Source & ": " & Err.Description & vbNewLine _ 
             & "Macscript = " & scriptCmd 
    MsgBox Msg, , "ShellAndWaitMac" 
    ShellAndWaitMac = False 
End Function
 
Grazie...
proverò nel fine settimana a capirci qualcosa....
 
Ultima modifica:
credo che questo possa aiutarci ma ho le idee molto confuse...

qui e qui invece si può leggere del comando cURL con le sue opzioni....
 
Ultima modifica:
Potrebbe essere la soluzione?

Jumpjack se mi dici cosa devo scaricare e da dove intanto faccio una prova con curl da terminale in modo da verificare il comando corretto, come consigliato nel link sopra...

Grazie
 
Ultima modifica:
All'inizio della macro ci sono tutti i link!

Const STRINGA_GENERE = "http://guidatv.sky.it/app/guidatv/contenuti/data/grid/grid_GGGGGGGG_channels.js"
Const STRINGA_CANALE = "http://guidatv.sky.it/app/guidatv/contenuti/data/grid/AA_MM_GG/ch_CCCCCCCC.js"
Public Const STRINGA_EVENTO = "http://guidatv.sky.it/EpgBackend/event_description.do?eid=EEEEEEEE"
Const STRINGA_MENSILE = "http://guidatv.sky.it/EpgBackend/getprogrammazione.do?idprogramma=" ' Seguita da id interno programma
 
Grazie...
I primi due li scarica senza problemi:

Codice:
mac-mini:skyfiles Marco$ curl -O http://guidatv.sky.it/app/guidatv/contenuti/data/grid/grid_GGGGGGGG_channels.js
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  3870  100  3870    0     0   4616      0 --:--:-- --:--:-- --:--:-- 14124
mac-mini:skyfiles Marco$ curl -O http://guidatv.sky.it/app/guidatv/contenuti/data/grid/AA_MM_GG/ch_CCCCCCCC.js
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  3870  100  3870    0     0   7624      0 --:--:-- --:--:-- --:--:--  8657

gli altri due naturalmente non può scaricarli per la mancanza di id evento e programma...
 
Ultima modifica:
marpar ha scritto:
Grazie...
I primi due li scarica senza problemi:

Codice:
mac-mini:skyfiles Marco$ curl -O http://guidatv.sky.it/app/guidatv/contenuti/data/grid/grid_GGGGGGGG_channels.js
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  3870  100  3870    0     0   4616      0 --:--:-- --:--:-- --:--:-- 14124
mac-mini:skyfiles Marco$ curl -O http://guidatv.sky.it/app/guidatv/contenuti/data/grid/AA_MM_GG/ch_CCCCCCCC.js
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  3870  100  3870    0     0   7624      0 --:--:-- --:--:-- --:--:--  8657
gli altri due naturalmente non può scaricarli per la mancanza di id evento e programma...

Ovviamente gli ID li trovi negli ALTRI file.
Com'è finita poi? Abbiamo la guidatv per MAC? :icon_cool:
 
Ciao a tutti...ho provato a scaricare il palinsesto e sembra funzionare...c'è modo di trasformarlo nel formato xmltv per Progdvb o simili?!

grazie
 
fr3nk2000 ha scritto:
Ciao a tutti...ho provato a scaricare il palinsesto e sembra funzionare...c'è modo di trasformarlo nel formato xmltv per Progdvb o simili?!

grazie
Mah, io l'ho scritto perchè non mi riesce di far funzionare XMLTV... A te funziona quell'impossibile programma?!?
 
non funziona su excel x64:

Errore di compilazione:

Il codice del progetto deve essere aggiornato per l'utilizzo in sistemi a
64 bit. Esaminare e aggiornare le istruzioni Declare, quindi
contrassegnarle con l'attributo PtrSafe.
 
jumpjack ha scritto:
Mah, io l'ho scritto perchè non mi riesce di far funzionare XMLTV... A te funziona quell'impossibile programma?!?

A me scarica il palinsesto correttamente,ma non so come trasformare il file excel in xml per importarlo in progdvb o mediaportal ecc...

Qualcuno,mi saprebbe dire se è possibile e come fare?se si riuscisse ad importare in progdvb,sarebbe veramente1figata...


grazie
 
marpar ha scritto:
VBA.shell() su MAC non funziona ma si può aggirare con Applescript come descritto qui

ERRATA CORRIGE

VBA.shell su MAC funziona...:D
Segue esempio di come si avvia TextEdit (NOTEPAD x Mac)

Codice:
Sub apriapp()
VBA.Shell ("Mac HD:Applications:TextEdit.app:Contents:MacOS:TextEdit")
End Sub
 
Ciao Jampjack, ho trovato il modo di scaricare i files sotto Mac...

Codice:
Sub ScaricafilesitoSky()

Dim ScriptToRun As String

ScriptToRun = "Skydownload.scpt" 'file script nella stessa dir del file Excel che scarica "grid_GGGGGGGG_channels.js" e "ch_CCCCCCCC.js"

'Avvia  applescript
MacScript (ScriptToRun) 'Lancia il comando in Applescript

End Sub

E' un mix fra VBA e Applescript quello che segue è il codice dell'Applescript richiamato nella macro "ScaricafilesitoSky":

Codice:
do shell script "curl -L " & "http://guidatv.sky.it/app/guidatv/contenuti/data/grid/grid_GGGGGGGG_channels.js" & " -o" & "/Users/Marco/Desktop/grid_GGGGGGGG_channels.js"
do shell script "curl -L " & "http://guidatv.sky.it/app/guidatv/contenuti/data/grid/AA_MM_GG/ch_CCCCCCCC.js" & " -o" & "/Users/Marco/Desktop/ch_CCCCCCCC.js"

Se mi dai una mano forse riusciamo a fare la versione per Mac.:D
Grazie
Ciao
 
Prova a eliminare questa dichiarazione all'inizio:
Codice:
Public Declare Function URLDownloadToFile Lib "urlmon" Alias _
"URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, _
ByVal szFileName As String, ByVal dwReserved As Long, _
ByVal lpfnCB As Long) As Long

E sostituiscila con:

Codice:
Public Function URLDownloadToFile(TipoFile as integer, strurl as string, nomefile as string, dummy1 as integer, dummy2 as integer)

Dim ScriptToRun(4) As String

ScriptToRun(1) = "SkyDownloadGenere.scpt" 
ScriptToRun(2) = "SkyDownloadCanale.scpt" 
ScriptToRun(3) = "SkyDownloadEvento.scpt" 
 ScriptToRun(4) = "SkyDownloadMese.scpt" 

 MacScript (ScriptToRun(TipoFile)) 

end function

Poi bisognerà cambiare nel resto della macro le chiamate a URLDownloadToFile in modo da impostare il primo parametro correttamente in base al tipo di file richiesto.
E devi avere 4 script distinti, uno per ogni file.

Però c'è il problema che il nome del file deve contenere parametri variabili, c'e' modo di passare parametri allo script da VBA?
 
Indietro
Alto Basso