Subscene-API.psm1

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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
# Get public and private function definition files.
$Public  = @( Get-ChildItem -Path $PSScriptRoot\Public\*.ps1 -ErrorAction Ignore )
$Private = @( Get-ChildItem -Path $PSScriptRoot\Private\*.ps1 -ErrorAction Ignore )

# Dot source the files
Foreach($import in @($Public + $Private))
{
    Try { . $import.fullname }
    Catch
    {
        Write-Error -Message "Failed to import function $($import.fullname): $_"
    }
}



Function Get-Subtitle
{
    [CmdletBinding()]
    param
    (
        [ValidateNotNullOrEmpty()]
        [Parameter(Mandatory=$False)]
        $SearchQuery,
        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [ValidateSet('TV-Series','Movie')]
        [string]$Type,
        [Parameter(Mandatory)]
        [string]$VideoDirectory,
        [Parameter(Mandatory=$False)]
        [switch]$AutoSelect=$False,
        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [ValidateSet('Farsi/Persian','English','Arabic','French')]
        [string]$Language
    )
    #Constants
    $SEARCHRESULT=""
    $SELECTEDLINKS=""
    $DIR_NAME = Split-Path -Path $VideoDirectory -Leaf
    $ORDINAL=@("","first","second","third","fourth","fifth","sixth","seventh","eighth","ninth","tenth","eleventh","twelfth","thirteenth","fourteenth","fifteenth","sixteenth","seventeenth","eighteenth","nineteenth","twentieth")

    Switch ($Type)
        {
            "Movie" 
            {
                 if ($SearchQuery)
                 {
                    if ($AutoSelect)
                    {
                        $SEARCHRESULT = HL_SEARCH_SUBSCENE -SearchQuery $SearchQuery -AutoSelect
                        $SELECTEDLINKS = HL_GET_Movie_Results -SelectedLink $SEARCHRESULT -Language $Language -AutoSelect
                    }
                    else
                    {
                        $SEARCHRESULT = HL_SEARCH_SUBSCENE -SearchQuery $SearchQuery
                        $SELECTEDLINKS = HL_GET_Movie_Results -SelectedLink $SEARCHRESULT -Language $Language
                    }
                 }
                 else
                 {
                    $SearchQuery = $DIR_NAME -replace "(\d{4}|\(|\)|^\s+|\s+$)",""
                    if ($AutoSelect)
                    {
                        $SEARCHRESULT = HL_SEARCH_SUBSCENE -SearchQuery $SearchQuery -AutoSelect
                        $SELECTEDLINKS = HL_GET_Movie_Results -SelectedLink $SEARCHRESULT -Language $Language -AutoSelect
                    }
                    else
                    {
                        $SEARCHRESULT = HL_SEARCH_SUBSCENE -SearchQuery $SearchQuery
                        $SELECTEDLINKS = HL_GET_Movie_Results -SelectedLink $SEARCHRESULT -Language $Language
                    }
                 }
                 if ($SELECTEDLINKS)
                 {
                    HL_Download_Subtitle -SelectedLinks $SELECTEDLINKS -Type $Type -VideoDirectory $VideoDirectory
                 }
                 else
                 { 
                    Return
                 }
            }
            "TV-Series" 
            {
                if ($SearchQuery)
                 {
                    if ($AutoSelect)
                    {
                        $SEARCHRESULT = HL_SEARCH_SUBSCENE -SearchQuery $SearchQuery -AutoSelect
                        $SELECTEDLINKS = HL_GET_TV_Results -SelectedLink $SEARCHRESULT -Language $Language -AutoSelect
                    }
                    else
                    {
                        $SEARCHRESULT = HL_SEARCH_SUBSCENE -SearchQuery $SearchQuery
                        $SELECTEDLINKS = HL_GET_TV_Results -SelectedLink $SEARCHRESULT -Language $Language
                    }
                 }
                 else
                 {
                    if ($DIR_NAME -match "season")
                    {
                        [int]$SEASON_NUM= [regex]::Match($DIR_NAME,"\d+").Value
                        $SERIES_NAME = Split-Path -Path (Split-Path -Path $VideoDirectory -Parent) -Leaf
                        $SearchQuery = ($SERIES_NAME + " - " + $ORDINAL[$SEASON_NUM] + " Season")
                    }
                    else
                    {
                        $SearchQuery = $DIR_NAME
                    }
                    if ($AutoSelect)
                    {
                        $SEARCHRESULT = HL_SEARCH_SUBSCENE -SearchQuery $SearchQuery -AutoSelect
                        $SELECTEDLINKS = HL_GET_TV_Results -SelectedLink $SEARCHRESULT -Language $Language -AutoSelect
                    }
                    else
                    {
                        $SEARCHRESULT = HL_SEARCH_SUBSCENE -SearchQuery $SearchQuery
                        $SELECTEDLINKS = HL_GET_TV_Results -SelectedLink $SEARCHRESULT -Language $Language 
                    }
                 }
                 if ($SELECTEDLINKS)
                 {
                    HL_Download_Subtitle -SelectedLinks $SELECTEDLINKS -Type $Type -VideoDirectory $VideoDirectory
                 }
                 else
                 {
                    Return
                 }
            }
        }
        if ($SELECTEDLINKS)
        {
            HL_RENAME_SUBTITLE -VideoDirectory $VideoDirectory -Language $Language -Type $Type
        }
}
Export-ModuleMember -Function Get-Subtitle