mirror of
https://github.com/NNTmux/newznab-tmux.git
synced 2026-08-29 03:01:34 +00:00
Recreate release_unique table, alter classes for new table
This commit is contained in:
@@ -546,7 +546,7 @@ class NameFixer
|
||||
SELECT
|
||||
rel.id AS releases_id, rel.size AS relsize, rel.groups_id, rel.fromname, rel.categories_id,
|
||||
rel.name, rel.name AS textstring, rel.predb_id, rel.searchname,
|
||||
HEX(ru.uniqueid) AS uid
|
||||
ru.uniqueid AS uid
|
||||
FROM releases rel
|
||||
LEFT JOIN release_unique ru ON ru.releases_id = rel.id
|
||||
WHERE ru.releases_id IS NOT NULL
|
||||
@@ -562,7 +562,7 @@ class NameFixer
|
||||
SELECT
|
||||
rel.id AS releases_id, rel.size AS relsize, rel.groups_id, rel.fromname, rel.categories_id,
|
||||
rel.name, rel.name AS textstring, rel.predb_id, rel.searchname,
|
||||
HEX(ru.uniqueid) AS uid
|
||||
ru.uniqueid AS uid
|
||||
FROM releases rel
|
||||
LEFT JOIN release_unique ru ON ru.releases_id = rel.id
|
||||
WHERE ru.releases_id IS NOT NULL
|
||||
@@ -2072,7 +2072,7 @@ class NameFixer
|
||||
FROM releases r
|
||||
LEFT JOIN release_unique ru ON ru.releases_id = r.id
|
||||
WHERE ru.releases_id IS NOT NULL
|
||||
AND ru.uniqueid = UNHEX({$this->pdo->quote($release->uid)})
|
||||
AND ru.uniqueid = {$this->pdo->quote($release->uid)}
|
||||
AND ru.releases_id != {$release->releases_id}
|
||||
AND (r.predb_id > 0 OR r.anidbid > 0 OR r.fromname = 'nonscene@Ef.net (EF)')"
|
||||
);
|
||||
|
||||
@@ -150,7 +150,7 @@ class ReleaseExtra
|
||||
|
||||
/*
|
||||
* MediaInfo Schema v1 (1.x - 7.99)
|
||||
**/
|
||||
*/
|
||||
case 1:
|
||||
foreach ($arrXml['File']['track'] as $track) {
|
||||
if (isset($track['@attributes']['type'])) {
|
||||
@@ -161,8 +161,8 @@ class ReleaseExtra
|
||||
if (isset($track['Overall_bit_rate'])) {
|
||||
$overallBitRate = $track['Overall_bit_rate'];
|
||||
}
|
||||
if (isset($track['Unique_ID']) && preg_match('/\(0x(?P<hash>[0-9a-f]{32})\)/i', $track['Unique_ID'], $matches)) {
|
||||
$uniqueId = $matches['hash'];
|
||||
if (isset($track['Unique_ID']) && preg_match('/(?P<uid>^\d+)/i', $track['Unique_ID'], $matches)) {
|
||||
$uniqueId = $matches['uid'];
|
||||
$this->addUID($releaseID, $uniqueId);
|
||||
}
|
||||
} elseif ($track['@attributes']['type'] === 'Video') {
|
||||
@@ -257,7 +257,7 @@ class ReleaseExtra
|
||||
|
||||
if ($type === 'General') {
|
||||
if (! empty($track['UniqueID']) && (int) $track['UniqueID'] !== 1) {
|
||||
$uniqueId = bcdechex($track['UniqueID']);
|
||||
$uniqueId = $track['UniqueID'];
|
||||
$this->addUID($releaseID, $uniqueId);
|
||||
}
|
||||
|
||||
@@ -489,19 +489,19 @@ class ReleaseExtra
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $releaseID
|
||||
* @param $uniqueId
|
||||
* @param int $releaseID
|
||||
* @param string $uniqueId
|
||||
*/
|
||||
public function addUID($releaseID, $uniqueId): void
|
||||
{
|
||||
$dupecheck = ReleaseUnique::query()->where('releases_id', $releaseID)->orWhere([
|
||||
'releases_id' => $releaseID,
|
||||
'uniqueid' => sodium_hex2bin($uniqueId),
|
||||
'uniqueid' => $uniqueId,
|
||||
])->first(['releases_id']);
|
||||
if ($dupecheck === null) {
|
||||
ReleaseUnique::query()->insert([
|
||||
'releases_id' => $releaseID,
|
||||
'uniqueid' => sodium_hex2bin($uniqueId),
|
||||
'uniqueid' => $uniqueId,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
2018-08-14 DariusIII
|
||||
* Chg: Recreate release_unique table, alter classes for new table
|
||||
* Chg: Revert runCmd function
|
||||
* Chg: Update Utility class, use Symfony Process class in runCmd function, declare return types where needed
|
||||
* Chg: Update ReleaseExtra class to handle MediaInfo v18 type UniqueID, add helper function and update composer.json to require bcmath extension
|
||||
|
||||
@@ -46,7 +46,10 @@ class ReleaseExtraFull extends Model
|
||||
*/
|
||||
protected $primaryKey = 'releases_id';
|
||||
|
||||
public function release()
|
||||
/**
|
||||
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
||||
*/
|
||||
public function release(): \Illuminate\Database\Eloquent\Relations\BelongsTo
|
||||
{
|
||||
return $this->belongsTo(Release::class, 'releases_id');
|
||||
}
|
||||
|
||||
@@ -43,7 +43,10 @@ class ReleaseFile extends Model
|
||||
*/
|
||||
protected $primaryKey = 'releases_id';
|
||||
|
||||
public function release()
|
||||
/**
|
||||
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
||||
*/
|
||||
public function release(): \Illuminate\Database\Eloquent\Relations\BelongsTo
|
||||
{
|
||||
return $this->belongsTo(Release::class, 'releases_id');
|
||||
}
|
||||
|
||||
+2
-2
@@ -16,8 +16,8 @@
|
||||
</last>
|
||||
</scripts>
|
||||
<sql>
|
||||
<db>353</db>
|
||||
<file>353</file>
|
||||
<db>354</db>
|
||||
<file>354</file>
|
||||
</sql>
|
||||
</versions>
|
||||
</nntmux>
|
||||
|
||||
@@ -18,11 +18,10 @@ class CreateReleaseUniqueTable extends Migration {
|
||||
$table->charset = 'utf8';
|
||||
$table->collation = 'utf8_unicode_ci';
|
||||
$table->integer('releases_id')->unsigned()->comment('FK to releases.id.');
|
||||
$table->string('uniqueid')->comment('Unique_ID from mediainfo.');
|
||||
$table->primary(['releases_id', 'uniqueid'], 'ix_releases_id_uniqueid');
|
||||
$table->foreign('releases_id', 'FK_ru_releases')->references('id')->on('releases')->onUpdate('CASCADE')->onDelete('CASCADE');
|
||||
});
|
||||
|
||||
DB::unprepared("ALTER TABLE release_unique ADD COLUMN uniqueid BINARY(16) NOT NULL DEFAULT '0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0' COMMENT 'Unique_ID from mediainfo.'");
|
||||
DB::unprepared('ALTER TABLE release_unique ADD PRIMARY KEY (releases_id, uniqueid)');
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
DROP TABLE IF EXISTS release_unique;
|
||||
CREATE TABLE release_unique (
|
||||
releases_id INT(11) UNSIGNED NOT NULL COMMENT 'FK to releases.id.',
|
||||
uniqueid VARCHAR(100) DEFAULT '' COMMENT 'Unique_ID from mediainfo.',
|
||||
PRIMARY KEY (releases_id, uniqueid)
|
||||
)
|
||||
ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8
|
||||
COLLATE = utf8_unicode_ci;
|
||||
Reference in New Issue
Block a user