USE [My Movies];
EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
EXEC sp_configure 'Ole Automation Procedures', 1 -- Enable
GO
EXEC sp_configure 'xp_cmdshell', '1' -- Enable
GO
RECONFIGURE
GO
DECLARE @counter int;
DECLARE @Path VARCHAR(2000);
DECLARE @Pfad VARCHAR(2000);
DECLARE @MD VARCHAR(2000);
DECLARE @Datei VARCHAR(2000);
DECLARE @Txt VARCHAR(2000);
DECLARE @Filme VARCHAR(255);
DECLARE @Serien VARCHAR(255);
SET @Path = 'C:\Users\Public\Videos';
SET @Filme = 'Movies\';
SET @Serien = 'Series\';
DECLARE tabcurs CURSOR FOR
SELECT REPLACE(REPLACE(title.nvcLocalTitle, ':', ''), '"', '') AS OrigTitle
, CASE WHEN ISNULL(ptitle.nvcTitle, '' ) = '' THEN title.nvcLocalTitle ELSE ptitle.nvcTitle END AS OwnTitle
, title.intProductionYear
, REPLACE(REPLACE(types.nvcName, '-', ''), ' ', '') AS Typ
, CASE WHEN title.bit3D = 1 THEN '.3D' ELSE '' END AS KZ3D
, CASE WHEN ptitle.intCollectionNumber = -1 THEN 'unbekannt' ELSE CAST(ptitle.intCollectionNumber AS varchar) END AS CNum
, ptitle.nvcLocation AS Loc
, bitWorksAsTVSeries AS Serie
, REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(title.nvcLocalTitle, '?', ''), '/', '_'), ':', ' -'), '"', ''), ' ', ' ') AS dateiname
FROM tblTitles AS title
LEFT JOIN tblTitlePersonal AS ptitle ON ptitle.intTitle = title.intId
LEFT JOIN tblTypes AS types ON types.intID = title.intType
LEFT JOIN tblTitleSeries AS tSeries ON tSeries.intTitle = title.intId
WHERE bitWorksAsTVSeries = 0
AND ISNULL(tSeries.intTitleSerie, '') = ''
ORDER BY OrigTitle;
OPEN tabcurs
DECLARE @title NVARCHAR(255);
DECLARE @owntitle NVARCHAR(255);
DECLARE @jahr int;
DECLARE @typ NVARCHAR(255);
DECLARE @3D NVARCHAR(255);
DECLARE @CNum NVARCHAR(255);
DECLARE @Loc NVARCHAR(255);
DECLARE @Serie bit;
DECLARE @dateiname NVARCHAR(255);
FETCH NEXT FROM tabcurs INTO @title, @owntitle, @jahr, @typ, @3D, @CNum, @Loc, @Serie, @dateiname
WHILE @@fetch_status = 0
BEGIN
SET @Datei = @Filme + @dateiname + ' (' + CAST(@jahr AS varchar) + ').' + LOWER(@typ) + @3D + '.disc';
SET @Txt = '
Befindet sich hier: ' + @CNum + '
';
EXECUTE spWriteStringToFile @Txt, @Path, @Datei
FETCH NEXT FROM tabcurs INTO @title, @owntitle, @jahr, @typ, @3D, @CNum, @Loc, @Serie, @dateiname
END
CLOSE tabcurs;
DEALLOCATE tabcurs;
DECLARE tabcurs CURSOR FOR
SELECT sls.nvcName AS Serie
, intSeasonNumber AS Staffel
, MIN(EpsGlobal.intEpisodeNumber) AS Episode1
, MAX(EpsGlobal.intEpisodeNumber) AS Episode2
, REPLACE(REPLACE(title.nvcLocalTitle, ':', ''), '"', '') AS OrigTitle
, REPLACE(CASE WHEN ISNULL(ptitle.nvcTitle, '' ) = '' THEN title.nvcLocalTitle ELSE ptitle.nvcTitle END, ':', '') AS OwnTitle
, disc.nvcLabel AS DiskLabel
, LOWER(REPLACE(REPLACE(types.nvcName, '-', ''), ' ', '')) AS Typ
, CASE WHEN title.bit3D = 1 THEN '.3D' ELSE '' END AS KZ3D
, CASE WHEN ptitle.intCollectionNumber = -1 THEN 'unbekannt' ELSE CAST(ptitle.intCollectionNumber AS varchar) END AS CNum
, ptitle.nvcLocation AS Loc
, REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(ols.nvcName, '?', ''), '/', '_'), ':', ' -'), '"', ''), ' ', ' ') AS dateiname
FROM tblTitles AS title
LEFT JOIN tblTitlePersonal AS ptitle ON ptitle.intTitle = title.intId
LEFT JOIN tblTypes AS types ON types.intID = title.intType
LEFT JOIN tblDiscs disc ON disc.intTitle = title.intId
JOIN tblDiscTitles DiscTitles ON DiscTitles.intDisc = disc.intId
JOIN tblEpisodeGlobal EpsGlobal ON EpsGlobal.guid = DiscTitles.guidEpisode
JOIN tblEpisodePersonal tep ON tep.guidEpisode = DiscTitles.guidEpisode
JOIN tblSeriesLanguageSpecific sls ON sls.guidSeries = EpsGlobal.guidSerie
LEFT JOIN tblSeriesLanguageSpecific ols ON ols.guidSeries = EpsGlobal.guidSerie
LEFT JOIN tblLanguages lng ON lng.guid = sls.guidLanguage
LEFT JOIN tblLanguages olng ON olng.guid = ols.guidLanguage
WHERE bitWorksAsTVSeries = 1
AND lng.nvcCode = 'de'
AND olng.nvcCode = 'en'
GROUP BY sls.nvcName, intSeasonNumber, disc.intId, title.nvcLocalTitle, ptitle.nvcTitle, disc.nvcLabel, types.nvcName, title.bit3D, ptitle.intCollectionNumber, ptitle.nvcLocation, ols.nvcName
ORDER BY sls.nvcName, intSeasonNumber, disc.intId;
OPEN tabcurs
DECLARE @disklabel NVARCHAR(255);
DECLARE @Serienname NVARCHAR(255);
DECLARE @Staffel NVARCHAR(100);
DECLARE @Episode1 int;
DECLARE @Episode2 int;
DECLARE @Episoden NVARCHAR(255);
FETCH NEXT FROM tabcurs INTO @Serienname, @Staffel, @Episode1, @Episode2, @title, @owntitle, @disklabel, @typ, @3D, @CNum, @Loc, @dateiname
WHILE @@fetch_status = 0
BEGIN
SET @Episoden = '';
SET @counter = @Episode1;
WHILE @counter <= @Episode2
BEGIN
SET @Episoden = @Episoden + 'E' + RIGHT(REPLICATE('0', 2) + CAST(@counter AS VARCHAR(2)), 2);
SET @counter = @counter + 1;
END
SET @Pfad = @Serien + REPLACE(@dateiname, ' ', '.') + '\Season ' + RIGHT(REPLICATE('0', 2) + CAST(@Staffel AS VARCHAR(2)), 2) + '\';
SET @MD = 'MD "' + @Path + '\' + @Pfad + '"'
EXEC master.dbo.xp_cmdshell @MD;
SET @Datei = @Pfad + REPLACE(@dateiname, ' ', '.') + '_S' + RIGHT(REPLICATE('0', 2) + CAST(@Staffel AS VARCHAR(2)), 2) + @Episoden + '.' + @typ + '.disc';
SET @Txt = '
Befindet sich hier: ' + @CNum + ', ' + @disklabel + '
';
EXECUTE spWriteStringToFile @Txt, @Path, @Datei
FETCH NEXT FROM tabcurs INTO @Serienname, @Staffel, @Episode1, @Episode2, @title, @owntitle, @disklabel, @typ, @3D, @CNum, @Loc, @dateiname
END
CLOSE tabcurs;
DEALLOCATE tabcurs;
EXEC sp_configure 'Ole Automation Procedures', 0 -- Disable
GO
EXEC sp_configure 'xp_cmdshell', '0' -- Disable
GO
RECONFIGURE
GO
EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO