[ASP] Dynamische m3u files?

Pagina: 1
Acties:

  • MankE NeliZ
  • Registratie: Mei 2000
  • Laatst online: 23-07 06:49

MankE NeliZ

Geen matches

Topicstarter
Ik heb een hoop mp3s op de pjoeter staan. Deze heb ik in diverse categorieen onderverdeeld (rock, pop, house etc maar ook 'new' en 'all mp3s'). Als ik weer een zooi nwe mp3s heb, gooi ik ze in de relevante directories. Wat ik echter irri vind, is dat ik vervolgens handmatig 3 playlists moet gaan updaten: zoeken in windows verkenner naar mp3s die de afgelopen periode erbij gekomen zijn --> oude playlist openen --> enqueue new files --> opslaan.

Nu zat ik eraan te denken om dit proces te automatiseren. Ik weet dat je met ASP textfiles kan lezen/schrijven. Is het ook mogelijk om dit te doen icm mijn probleem?

Ik wil dat de asp code mijn huidige m3u file analyseert, vervolgens de betreffende dir checkt op nwe mp3 files, deze bijvoegt in de m3u playlistfile en vervolgens het zaakje opslaat.

Geen scriptrequest, ik wil alleen weten of dit kan (en evt enkele pointers :) )

In Kazachstan we say a woman with a book...is like a horse...with wings!


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 29-08 12:08

gorgi_19

Kruimeltjes zijn weer op :9

Volgens mij wil je dit niet in ASP doen, maar in VBScript (ik neem aan dat je niet speciaal hiervoor een webserver wilt inrichten)
Ik geloof dat m3u een simpel tekstformaat was, dus:
* huidige m3u analyseren: Openen / lezen met FileSystemObject
* Dir checken: Ook FileSystemObject, folder uitlezen hiermee

Volgens mij moet je dan er wel verder mee kunnen.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • MankE NeliZ
  • Registratie: Mei 2000
  • Laatst online: 23-07 06:49

MankE NeliZ

Geen matches

Topicstarter
thanks voor de tips - werkt prima nu. Ik had echter al een asp server lopen dus heb ik wel gewoon alles in ASP gedaan.

Een tip voor mensen die dit ook willen doen en Norton Antivirus hebben draaien: zet scriptblocking uit! Als dit aan staat, werkt de code nl niet op je lokale sever! Duurde ff voordat ik erachter kwam waarom die code maar niet wilde werken :)

Hier is een voorbeeld van de uiteindelijke code:

ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
action =request("action")

If action ="House" Then
    
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    'delete old m3u
    fs.DeleteFile "D:\Media\Audio\Mp3\Playlists\_House.m3u"
    'create blank m3u
    fs.CreateTextFile "D:\Media\Audio\Mp3\Playlists\_House.m3u"
    'determine rootfolder for this job
    set Rootfolder=fs.GetFolder("D:\Media\Audio\Mp3\House")
    'do following action in each subfolder of the rootfolder
    for each Subfolder in Rootfolder.SubFolders
        'determine subfolder name
        set Subfolder=fs.GetFolder("D:\Media\Audio\Mp3\House\"&Subfolder.Name&"")
        'do following action for each file in the subfolder
        for each FileName in Subfolder.files
            'Open the m3u file
            Set objTextStream = fs.OpenTextFile("D:\Media\Audio\Mp3\Playlists\_House.m3u", 8)
            'write filename
            objTextStream.WriteLine FileName
            'Close the file and clean up
            objTextStream.Close
            Set objTextStream = Nothing
        next
    next
    response.write"Updated the <b>"&action&"</b> playlist. <br><br><a href=mp3admin.asp>Click here to return to MP3ADMiN</a>"

In Kazachstan we say a woman with a book...is like a horse...with wings!


  • maikel
  • Registratie: Januari 2001
  • Laatst online: 28-08 13:52
Waarom doe je dit in ASP ?
Die wordt alleen maar uitgevoerd als je zelf de pagina opvraagt. In C# zit een filesystemwatcher, die kan een bepaalde directory in de gaten houden of er wat wijzigt. Aan de hand daarvan zou je bijvoorbeeld nieuwe bestanden automatisch kunnen laten toevoegen aan je playlist. Het programma kun je dan als service laten draaien, zodat ie altijd die directory in de gaten houdt.
Toevallig zat ik van de week ook aan zoiets te denken. :)

  • MankE NeliZ
  • Registratie: Mei 2000
  • Laatst online: 23-07 06:49

MankE NeliZ

Geen matches

Topicstarter
Hehe omdat ik geen echte programmeur ben :)

Ik heb geen flauw idee hoe C# inelkaar zit....maar het klinkt zeker als een coole oplossing voor dit probleem.

In Kazachstan we say a woman with a book...is like a horse...with wings!


  • maikel
  • Registratie: Januari 2001
  • Laatst online: 28-08 13:52
Ik weet niet in hoeverre je ASP beheerst, maar anders kun je ook kijken naar VB.Net. Is dezelfde syntax.
En als je een nieuwe taal vrij snel oppikt, moet het op zich niet een al te groot probleem vormen om je programma in .Net te bouwen.

  • MankE NeliZ
  • Registratie: Mei 2000
  • Laatst online: 23-07 06:49

MankE NeliZ

Geen matches

Topicstarter
Nee dit gaat echt mijn pet te boven :) Ik heb op msdn dit gevonden maar ja...is iets te geavanceerd

ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
[Visual Basic] 
Public Class Watcher
    
    Public Shared Sub Main()
        Dim args() As String = System.Environment.GetCommandLineArgs()
        ' If a directory is not specified, exit the program.
        If args.Length <> 2 Then
            ' Display the proper way to call the program.
            Console.WriteLine("Usage: Watcher.exe (directory)")
            Return
        End If
        
        ' Create a new FileSystemWatcher and set its properties.
        Dim watcher As New FileSystemWatcher()
        watcher.Path = args(1)
        ' Watch for changes in LastAccess and LastWrite times, and
        ' the renaming of files or directories. 
        watcher.NotifyFilter = (NotifyFilters.LastAccess Or NotifyFilters.LastWrite Or NotifyFilters.FileName Or NotifyFilters.DirectoryName)
        ' Only watch text files.
        watcher.Filter = "*.txt"
        
        ' Add event handlers.
        AddHandler watcher.Changed, AddressOf OnChanged
        AddHandler watcher.Created, AddressOf OnChanged
        AddHandler watcher.Deleted, AddressOf OnChanged
        AddHandler watcher.Renamed, AddressOf OnRenamed
        
        ' Begin watching.
        watcher.EnableRaisingEvents = True
        
        ' Wait for the user to quit the program.
        Console.WriteLine("Press 'q' to quit the sample.")
        While Chr(Console.Read()) <> "q"c
        End While
    End Sub
     
    ' Define the event handlers.
    Public Shared Sub OnChanged(source As Object, e As FileSystemEventArgs)
        ' Specify what is done when a file is changed, created, or deleted.
        Console.WriteLine("File: " & e.FullPath & " " & e.ChangeType)
    End Sub    
    
    Public Shared Sub OnRenamed(source As Object, e As RenamedEventArgs)
        ' Specify what is done when a file is renamed.
        Console.WriteLine("File: {0} renamed to {1}", e.OldFullPath, e.FullPath)
    End Sub
    
End Class


[C#] 
public class Watcher
{

    public static void Main()
    {

        string[] args = System.Environment.GetCommandLineArgs();
 
        // If a directory is not specified, exit program.
        if(args.Length != 2)
        {
            // Display the proper way to call the program.
            Console.WriteLine("Usage: Watcher.exe (directory)");
            return;
        }

        // Create a new FileSystemWatcher and set its properties.
        FileSystemWatcher watcher = new FileSystemWatcher();
        watcher.Path = args[1];
        /* Watch for changes in LastAccess and LastWrite times, and 
           the renaming of files or directories. */
        watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite 
           | NotifyFilters.FileName | NotifyFilters.DirectoryName;
        // Only watch text files.
        watcher.Filter = "*.txt";

        // Add event handlers.
        watcher.Changed += new FileSystemEventHandler(OnChanged);
        watcher.Created += new FileSystemEventHandler(OnChanged);
        watcher.Deleted += new FileSystemEventHandler(OnChanged);
        watcher.Renamed += new RenamedEventHandler(OnRenamed);

        // Begin watching.
        watcher.EnableRaisingEvents = true;

        // Wait for the user to quit the program.
        Console.WriteLine("Press \'q\' to quit the sample.");
        while(Console.Read()!='q');
    }

    // Define the event handlers.
    public static void OnChanged(object source, FileSystemEventArgs e)
    {
        // Specify what is done when a file is changed, created, or deleted.
       Console.WriteLine("File: " +  e.FullPath + " " + e.ChangeType);
    }

    public static void OnRenamed(object source, RenamedEventArgs e)
    {
        // Specify what is done when a file is renamed.
        Console.WriteLine("File: {0} renamed to {1}", e.OldFullPath, e.FullPath);
    }
}


Overigens: zou ik dit script kunnen executen als ik ASP.NEt installeer of is er iets anders nodig voor C#? En kan ik ASP.NEt of C# probleemloos op mijn server installeren zonder dat IIS en mijn huidige ASP config in de soep loopt? Ik zou hier best wel mee willen experimenteren....

In Kazachstan we say a woman with a book...is like a horse...with wings!


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 29-08 12:08

gorgi_19

Kruimeltjes zijn weer op :9

Zo te zien is dit niet specifiek voor ASP.Net geschreven, dus kan je er ook een console applicatie van maken. Volgens mij werkt het in eerste instantie niet onder ASP.Net en moet je nog een paas aanpassingen er aan verrichten.

Het .NET framework kan je gewoon op je server installeren; als je het goed doet kan je nog gewoon ASP-pagina's draaien.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • maikel
  • Registratie: Januari 2001
  • Laatst online: 28-08 13:52
gorgi_19 schreef op 10 November 2002 @ 14:58:
Zo te zien is dit niet specifiek voor .Net geschreven, dus kan je er ook een console applicatie van maken. Volgens mij werkt het in eerste instantie niet onder .Net en moet je nog een paas aanpassingen er aan verrichten.

Het .NET framework kan je gewoon op je server installeren; als je het goed doet kan je nog gewoon ASP-pagina's draaien.
Hoezo is het niet specifiek voor .Net geschreven ?? C# is toch echt .Net hoor.

Het framework is gewoon te installeren ja. Alle ASP-files worden nog gewoon uitgevoerd zoals het hoort.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 29-08 12:08

gorgi_19

Kruimeltjes zijn weer op :9

maikel schreef op 10 November 2002 @ 15:02:
[...]


Hoezo is het niet specifiek voor .Net geschreven ?? C# is toch echt .Net hoor.

Het framework is gewoon te installeren ja. Alle ASP-files worden nog gewoon uitgevoerd zoals het hoort.
|:( Memo aan mezelf: Eerst herlezen, dan pas op verzend drukken. :P

Ik bedoelde: Het is niet specifiek voor ASP.Net geschreven...

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • maikel
  • Registratie: Januari 2001
  • Laatst online: 28-08 13:52
gorgi_19 schreef op 10 november 2002 @ 15:04:
[...]

|:( Memo aan mezelf: Eerst herlezen, dan pas op verzend drukken. :P

Ik bedoelde: Het is niet specifiek voor ASP.Net geschreven...
Ooohhh..... :)
Dan heb je inderdaad gelijk ja. Overigens is bijna alle C#-/VB.Net-code niet specifiek voor ASP.Net aangezien die code zowel voor ASP.Net als voor bijv. Win-apps te gebruiken is.
En dan bedoel ik dus niet de codebehind-files, maar meer de businesslogic. :)
Pagina: 1