NFO App - Basic TV Episode NFO Creator
#1
This is my first post here. I have been in need of an app that can create simple quick nfo files for some TV shows I have that aren't in TVDB and the like.
I wasn't able to find one so I built one with AutoIt and thought I'd share it will you all.
Please be aware that it is very simple BUT can be modified and more features COULD be added.

If needed I can edit this post with a more detailed how-to guide, but I'm just about on my way out from work to go home and don't have time ATM.

The only thing I will mention is that if you are using the "Episode Name List" option, the file should be .txt and the name of the episodes should be on each line. See pics below.

Main Gui
Image

Sample of Episode Name List file
Image

What a created sample NFO looks like
Image

Download here

AutoIt Source Code
Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <UpDownConstants.au3>
#include <String.au3>
#include <file.au3>


#Region ### START Koda GUI section ### Form=C:\Documents and Settings\Administrator\Desktop\Quick Episode NFO\Form1.kxf
$Form1 = GUICreate("Basic TV Episode NFO Creator", 536, 143, 193, 125)

$Label1 = GUICtrlCreateLabel("Season", 32, 8, 40, 17)
$Input1 = GUICtrlCreateInput("", 32, 32, 41, 21)
GUICtrlSetData(-1, "1")
$Updown1 = GUICtrlCreateUpdown($Input1)
GUICtrlSetLimit(-1, 99, 1)

$Label2 = GUICtrlCreateLabel("Episode Start", 105, 8, 67, 17)
$Input2 = GUICtrlCreateInput("", 112, 32, 41, 21)
GUICtrlSetData(-1, "1")
$Updown2 = GUICtrlCreateUpdown($Input2)
GUICtrlSetLimit(-1, 99, 1)

$Label3 = GUICtrlCreateLabel("Episode End", 185, 8, 64, 17)
$Input3 = GUICtrlCreateInput("", 192, 32, 41, 21)
GUICtrlSetData(-1, "1")
$Updown3 = GUICtrlCreateUpdown($Input3)
GUICtrlSetLimit(-1, 99, 1)

$Label4 = GUICtrlCreateLabel("Show Name", 260, 8, 64, 17)
$Input5 = GUICtrlCreateInput("", 260, 32, 170, 21)
$Button1 = GUICtrlCreateButton("Build NFO's", 440, 32, 75, 25, 0)

$Checkbox1 = GUICtrlCreateCheckbox("Episode Name List", 32, 72, 113, 17, BitOR($BS_CHECKBOX,$BS_AUTOCHECKBOX,$BS_RIGHTBUTTON,$WS_TABSTOP))
$Input4 = GUICtrlCreateInput("", 32, 96, 401, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button2 = GUICtrlCreateButton("Browse", 440, 96, 75, 25, 0)
GUICtrlSetState(-1, $GUI_DISABLE)

GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Checkbox1
            Select
            Case GUICtrlRead($Checkbox1) = $GUI_UNCHECKED
                GUICtrlSetState($Input4, $GUI_DISABLE)
                GUICtrlSetState($Button2, $GUI_DISABLE)
                GUICtrlSetState($Input2, $GUI_ENABLE)
                GUICtrlSetState($Input3, $GUI_ENABLE)
                GUICtrlSetState($Updown2, $GUI_ENABLE)
                GUICtrlSetState($Updown3, $GUI_ENABLE)
            Case GUICtrlRead($Checkbox1) = $GUI_CHECKED
                GUICtrlSetState($Input4, $GUI_ENABLE)
                GUICtrlSetState($Button2, $GUI_ENABLE)
                GUICtrlSetState($Input2, $GUI_DISABLE)
                GUICtrlSetState($Input3, $GUI_DISABLE)
                GUICtrlSetState($Updown2, $GUI_DISABLE)
                GUICtrlSetState($Updown3, $GUI_DISABLE)
            EndSelect
        Case $Button2
            $message = "Select File"
            $var = FileOpenDialog($message, @ScriptDir & "\", "Text Files (*.txt)", 1 + 4 )
            If @error Then
                MsgBox(4096,"","No File(s) chosen")
            Else
                $var = StringReplace($var, "|", @CRLF)
                GUICtrlSetData($Input4, $var)
                GUICtrlSetTip($Input4, $var)
            EndIf
        Case $Button1
            $sSeason = GUICtrlRead($Input1)
            $sEpStart = GUICtrlRead($Input2)
            $sEpEnd = GUICtrlRead($Input3)
            $sShowName = GUICtrlRead($Input5)
            Select
                Case GUICtrlRead($Checkbox1) = $GUI_CHECKED And GUICtrlRead($Input4) <> ""
                    $sEpListPath = GUICtrlRead($Input4)
                    $file = FileOpen($sEpListPath, 0)
                    ; Check if file opened for reading OK
                    If $file = -1 Then
                        MsgBox(0, "Error", "Unable to open Episode Name List file.")
                        Exit
                    EndIf
                    $sEp = 1
                    $sEpEnd = _FileCountLines($sEpListPath)
                    ; Read in lines of text until the EOF is reached
                    While 1
                        $line = _StringProper(FileReadLine($file))
                        If @error = -1 Or $sEp = $sEpEnd Then ExitLoop
                        Select
                            Case $sSeason < 10 And $sEp < 10
                                $newfile = FileOpen(@ScriptDir & "\" & $sShowName & "\" & "Season" & $sSeason & "\" & $sShowName & ".S" & "0" & $sSeason & "E" & "0" & $sEp & "." & $line & ".nfo", 10);wrie mode
                            Case $sSeason < 10 And $sEp > 9
                                $newfile = FileOpen(@ScriptDir & "\" & $sShowName & "\" & "Season" & $sSeason & "\" & $sShowName & ".S" & "0" & $sSeason & "E" & $sEp & "." & $line & ".nfo", 10);wrie mode
                            Case $sSeason > 9 And $sEp < 10
                                $newfile = FileOpen(@ScriptDir & "\" & $sShowName & "\" & "Season" & $sSeason & "\" & $sShowName & ".S" & $sSeason & "E" & "0" & $sEp & "." & $line & ".nfo", 10);wrie mode
                            Case Else    
                                $newfile = FileOpen(@ScriptDir & "\" & $sShowName & "\" & "Season" & $sSeason & "\" & $sShowName & ".S" & $sSeason & "E" & $sEp & "." & $line & ".nfo", 10);wrie mode
                        EndSelect
                        FileWriteLine($newfile, "<episodedetails>" & @CRLF)
                        FileWriteLine($newfile, "    <title>" & $line & "</title>" & @CRLF)
                        FileWriteLine($newfile, "    <season>" & $sSeason & "</season>" & @CRLF)
                        FileWriteLine($newfile, "    <episode>" & $sEp & "</episode>" & @CRLF)
                        FileWriteLine($newfile, "</episodedetails>" & @CRLF)
                        FileClose($newfile)
                        $sEp += 1
                    Wend
                    FileClose($file)
                    MsgBox(0,"Status", "Completed creating episode NFO's.")
                Case GUICtrlRead($Checkbox1) = $GUI_UNCHECKED
                    For $sEp = $sEpStart To $sEpEnd
                        If $sEp < 10 Then $sEp = "0" & $sEp
                        $newfile = FileOpen(@ScriptDir & "\" & $sShowName & "\" & "Season" & $sSeason & "\" & $sShowName & ".S" & $sSeason & "E" & $sEp & ".nfo", 10);wrie mode
                        FileWriteLine($newfile, "<episodedetails>" & @CRLF)
                        FileWriteLine($newfile, "    <season>" & $sSeason & "</season>" & @CRLF)
                        FileWriteLine($newfile, "    <episode>" & $sEp & "</episode>" & @CRLF)
                        FileWriteLine($newfile, "</episodedetails>" & @CRLF)
                        FileClose($newfile)
                    Next
                    MsgBox(0,"Status", "Completed creating episode NFO's.")
                Case Else
                    MsgBox(0, "Error", "Select Episode List Name file.")
                EndSelect
    EndSwitch
WEnd

Cheers,
Radsam
Reply
#2
Some antivirus programs flags autoit as malicious. Just to give you a heads up.
Reply
#3
Ya I know, that is why I mentioned it was built with AutoIt.

I don't build virus stuff but I understand if no one wants to use it because of that. oh wells. it works for me.
Reply
#4
Supply source to gain our trust. Smile
Reply
#5
Actually, you can reverse the exe with AutoIt. I didn't pw protect the compiled source. But if you still want source, I can post it tomorrow.
Reply
#6
Source Added. Smile
Reply
#7
This looks great, something i've been looking for , for ages it seems. I hate being dependent on thetvdb.com. Anyway to use this on Mac ?
Reply
#8
VMware might be the way to go.
Reply
#9
Radsam Wrote:VMware might be the way to go.

HAHA thanks. now that would be overkill :-)
Reply
#10
Radsam Wrote:This is my first post here. I have been in need of an app that can create simple quick nfo files for some TV shows I have that aren't in TVDB and the like.
I wasn't able to find one so I built one with AutoIt and thought I'd share it will you all.

Thanks dude.

Saved me at least an hour creating 43 episodes of NFO's of the winter Olympics.

Works just fine for linux using wine.
Reply
#11
Thanks alot will save me alot of time : )
Reply

Logout Mark Read Team Forum Stats Members Help
NFO App - Basic TV Episode NFO Creator1