Skip to content

Commit

Permalink
Merge branch 'dev' into feature/dmm-id
Browse files Browse the repository at this point in the history
  • Loading branch information
seeyabye committed Sep 28, 2020
2 parents 51a3dc7 + e33b972 commit df942c9
Show file tree
Hide file tree
Showing 7 changed files with 73 additions and 5 deletions.
3 changes: 2 additions & 1 deletion src/Javinizer/Private/Convert-JVString.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,8 @@ function Convert-JVString {
-replace '<SET>', "$($Data.Series)" `
-replace '<LABEL>', "$($Data.Label)" `
-replace '<ACTORS>', "$actresses" `
-replace '<ORIGINALTITLE>', "$($Data.AlternateTitle)"
-replace '<ORIGINALTITLE>', "$($Data.AlternateTitle)" `
-replace '<RESOLUTION>', "$($Data.MediaInfo.VideoHeight)"

foreach ($symbol in $invalidSymbols) {
if ([regex]::Escape($symbol) -eq '/') {
Expand Down
6 changes: 5 additions & 1 deletion src/Javinizer/Public/Get-JVAggregatedData.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,10 @@ function Get-JVAggregatedData {

[Parameter(ValueFromPipelineByPropertyName = $true, ParameterSetName = 'Setting')]
[Alias('scraper.option.idpreference')]
[String]$IdPreference
[String]$IdPreference,

[Parameter(ValueFromPipelineByPropertyName = $true, ParameterSetName = 'Setting')]
[PSObject]$MediaInfo
)

process {
Expand Down Expand Up @@ -213,6 +216,7 @@ function Get-JVAggregatedData {
CoverUrl = $null
ScreenshotUrl = $null
TrailerUrl = $null
MediaInfo = $MediaInfo
}

$metadataFields = @(
Expand Down
22 changes: 22 additions & 0 deletions src/Javinizer/Public/Get-JVMediaInfo.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
function Get-JVMediaInfo {
[CmdletBinding()]
param (
[Parameter(Mandatory = $true, Position = 0)]
[System.IO.FileInfo]$Path
)

$fullMetadata = ((MediaInfo --Full $Path --Output=JSON) | ConvertFrom-Json).media.track
$videoMetadata = $fullMetaData | Where-Object { $_.'@type' -eq 'Video' }[0]
$audioMetadata = ($fullMetaData | Where-Object { $_.'@type' -eq 'Audio' })[0]
$metadata = [PSCustomObject]@{
VideoCodec = $videoMetadata.CodecID
VideoAspect = $videoMetadata.DisplayAspectRatio_String
VideoWidth = $videoMetadata.Width
VideoHeight = $videoMetadata.Height
VideoDuration = [Math]::Round($videoMetadata.Duration)
AudioCodec = $audioMetadata.CodecID
AudioLanguage = $audioMetadata.Language
AudioChannels = $audioMetadata.Channels
}
Write-Output $metadata
}
26 changes: 26 additions & 0 deletions src/Javinizer/Public/Get-JVNfo.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,9 @@ function Get-JVNfo {
[Parameter(ValueFromPipelineByPropertyName = $true)]
[String]$Tagline,

[Parameter(ValueFromPipelineByPropertyName = $true)]
[PSObject]$MediaInfo,

[Parameter()]
[Boolean]$ActressLanguageJa,

Expand Down Expand Up @@ -187,6 +190,29 @@ function Get-JVNfo {
$nfoString = $nfoString + $actressNfoString
}

if ($MediaInfo) {
$mediaNfoString = @"
<fileinfo>
<streamdetails>
<video>
<codec>$($MediaInfo.VideoCodec)</codec>
<aspect>$($MediaInfo.VideoAspect)</aspect>
<width>$($MediaInfo.VideoWidth)</width>
<height>$($MediaInfo.VideoHeight)</height>
<durationinseconds>$($MediaInfo.VideoDuration)</durationinseconds>
</video>
<audio>
<codec>$($MediaInfo.AudioCodec)</codec>
<language>$($MediaInfo.AudioLanguage)</language>
<channels>$($MediaInfo.AudioChannels)</channels>
</audio>
</streamdetails>
</fileinfo>
"@
$nfoString = $nfoString + $mediaNfoString
}

$endNfoString = @"
</movie>
"@
Expand Down
8 changes: 7 additions & 1 deletion src/Javinizer/Public/Get-JavlibraryUrl.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,13 @@ function Get-JavlibraryUrl {
Write-JVLog -Write:$script:JVLogWrite -LogPath $script:JVLogPath -WriteLevel $script:JVLogWriteLevel -Level Debug -Message "[$Id] [$($MyInvocation.MyCommand.Name)] Performing [GET] on URL [$searchUrl]"
$webRequest = Invoke-WebRequest -Uri $searchUrl -Method Get -Verbose:$false
} catch {
Write-JVLog -Write:$script:JVLogWrite -LogPath $script:JVLogPath -WriteLevel $script:JVLogWriteLevel -Level Error -Message "[$Id] [$($MyInvocation.MyCommand.Name)] Error occured on [GET] on URL [$searchUrl]: $PSItem" -Action 'Continue'
try {
# Add a retry to the URL search due to 500 errors occurring randomly when scraping Javlibrary
Start-Sleep -Seconds 3
$webRequest = Invoke-WebRequest -Uri $searchUrl -Method Get -Verbose:$false
} catch {
Write-JVLog -Write:$script:JVLogWrite -LogPath $script:JVLogPath -WriteLevel $script:JVLogWriteLevel -Level Error -Message "[$Id] [$($MyInvocation.MyCommand.Name)] Error occured on [GET] on URL [$searchUrl]: $PSItem" -Action 'Continue'
}
}

# Check if the search uniquely matched a video page
Expand Down
12 changes: 10 additions & 2 deletions src/Javinizer/Public/Javinizer.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -667,9 +667,13 @@ function Javinizer {
return
}

if ($Settings.'sort.metadata.nfo.mediainfo') {
$mediaInfo = Get-JVMediaInfo -Path $movie.FullName
}

$javData = Get-JVData -Url $Url -Settings $Settings -UncensorCsvPath $uncensorCsvPath
if ($null -ne $javData) {
$javAggregatedData = $javData | Get-JVAggregatedData -Settings $Settings | Test-JVData -RequiredFields $Settings.'sort.metadata.requiredfield'
$javAggregatedData = $javData | Get-JVAggregatedData -Settings $Settings -MediaInfo $mediaInfo | Test-JVData -RequiredFields $Settings.'sort.metadata.requiredfield'
if ($null -ne $javAggregatedData) {
$javAggregatedData | Set-JVMovie -Path $javMovies.FullName -DestinationPath $DestinationPath -Settings $Settings -PartNumber $JavMovies.PartNumber -Force:$Force
}
Expand All @@ -691,9 +695,13 @@ function Javinizer {

if ($PSboundParameters.ContainsKey('IsThread')) {
foreach ($movie in $javMovies) {
if ($Settings.'sort.metadata.nfo.mediainfo') {
$mediaInfo = Get-JVMediaInfo -Path $movie.FullName
}

$javData = Get-JVData -Id $movie.Id -Settings $Settings -UncensorCsvPath $uncensorCsvPath
if ($null -ne $javData) {
$javAggregatedData = $javData | Get-JVAggregatedData -Settings $Settings | Test-JVData -RequiredFields $Settings.'sort.metadata.requiredfield'
$javAggregatedData = $javData | Get-JVAggregatedData -Settings $Settings -MediaInfo $mediaInfo | Test-JVData -RequiredFields $Settings.'sort.metadata.requiredfield'
if ($javAggregatedData.NullFields -eq '') {
$javAggregatedData | Set-JVMovie -Path $movie.FullName -DestinationPath $DestinationPath -Settings $Settings -PartNumber $movie.Partnumber -Update:$Update -Force:$Force
} else {
Expand Down
1 change: 1 addition & 0 deletions src/Javinizer/jvSettings.json
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@
"sort.format.screenshotimg": "fanart",
"sort.format.screenshotfolder": "extrafanart",
"sort.format.actressimgfolder": ".actors",
"sort.metadata.nfo.mediainfo": 0,
"sort.metadata.nfo.translatedescription": 0,
"sort.metadata.nfo.translatedescription.language": "en",
"sort.metadata.nfo.displayname": "[<ID>] <TITLE>",
Expand Down

0 comments on commit df942c9

Please sign in to comment.