Ejemplo n.º 1
0
    /**
     * Used for release edit page on site.
     *
     * @param int    $ID
     * @param string $name
     * @param string $searchName
     * @param string $fromName
     * @param int    $categoryID
     * @param int    $parts
     * @param int    $grabs
     * @param int    $size
     * @param string $postedDate
     * @param string $addedDate
     * @param        $videoId
     * @param        $episodeId
     * @param int    $imDbID
     * @param int    $aniDbID
     *
     */
    public function update($ID, $name, $searchName, $fromName, $categoryID, $parts, $grabs, $size, $postedDate, $addedDate, $videoId, $episodeId, $imDbID, $aniDbID)
    {
        $this->pdo->queryExec(sprintf('UPDATE releases
				SET name = %s, searchname = %s, fromname = %s, categoryid = %d,
					totalpart = %d, grabs = %d, size = %s, postdate = %s, adddate = %s, videos_id = %d,
					tv_episodes_id = %s, imdbid = %d, anidbid = %d
				WHERE id = %d', $this->pdo->escapeString($name), $this->pdo->escapeString($searchName), $this->pdo->escapeString($fromName), $categoryID, $parts, $grabs, $this->pdo->escapeString($size), $this->pdo->escapeString($postedDate), $this->pdo->escapeString($addedDate), $videoId, $episodeId, $imDbID, $aniDbID, $ID));
        $this->sphinxSearch->updateRelease($ID, $this->pdo);
    }
Ejemplo n.º 2
0
    /**
     * Used for release edit page on site.
     *
     * @param int    $ID
     * @param string $name
     * @param string $searchName
     * @param string $fromName
     * @param int    $categoryID
     * @param int    $parts
     * @param int    $grabs
     * @param int    $size
     * @param string $postedDate
     * @param string $addedDate
     * @param int    $rageID
     * @param string $seriesFull
     * @param string $season
     * @param string $episode
     * @param int    $imDbID
     * @param int    $aniDbID
     */
    public function update($ID, $name, $searchName, $fromName, $categoryID, $parts, $grabs, $size, $postedDate, $addedDate, $rageID, $seriesFull, $season, $episode, $imDbID, $aniDbID)
    {
        $this->pdo->queryExec(sprintf('UPDATE releases
				SET name = %s, searchname = %s, fromname = %s, categoryid = %d,
					totalpart = %d, grabs = %d, size = %s, postdate = %s, adddate = %s, rageid = %d,
					seriesfull = %s, season = %s, episode = %s, imdbid = %d, anidbid = %d
				WHERE id = %d', $this->pdo->escapeString($name), $this->pdo->escapeString($searchName), $this->pdo->escapeString($fromName), $categoryID, $parts, $grabs, $this->pdo->escapeString($size), $this->pdo->escapeString($postedDate), $this->pdo->escapeString($addedDate), $rageID, $this->pdo->escapeString($seriesFull), $this->pdo->escapeString($season), $this->pdo->escapeString($episode), $imDbID, $aniDbID, $ID));
        $this->sphinxSearch->updateReleaseSearchName($ID, $searchName);
    }
Ejemplo n.º 3
0
    protected function _preFTsearchQuery($preTitle)
    {
        switch (nZEDb_RELEASE_SEARCH_TYPE) {
            case ReleaseSearch::SPHINX:
                $titlematch = SphinxSearch::escapeString($preTitle);
                $join = sprintf('INNER JOIN releases_se rse ON rse.id = r.id
						WHERE rse.query = "@(name,searchname,filename) %s;mode=extended"', $titlematch);
                break;
            case ReleaseSearch::FULLTEXT:
            default:
                //Remove all non-printable chars from PreDB title
                preg_match_all('#[a-zA-Z0-9]{3,}#', $preTitle, $matches, PREG_PATTERN_ORDER);
                $titlematch = '+' . implode(' +', $matches[0]);
                $join = sprintf("INNER JOIN release_search_data rs ON rs.releaseid = r.id\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t(MATCH (rs.name) AGAINST ('%1\$s' IN BOOLEAN MODE)\n\t\t\t\t\t\t\tOR MATCH (rs.searchname) AGAINST ('%1\$s' IN BOOLEAN MODE))", $titlematch);
                break;
        }
        return $join;
    }
Ejemplo n.º 4
0
    /**
     * Update the release with the new information.
     *
     * @param array   $release
     * @param string  $name
     * @param string  $method
     * @param boolean $echo
     * @param string  $type
     * @param int     $nameStatus
     * @param int     $show
     * @param int     $preId
     */
    public function updateRelease($release, $name, $method, $echo, $type, $nameStatus, $show, $preId = 0)
    {
        if ($this->relid !== $release['releaseid']) {
            $releaseCleaning = new ReleaseCleaning($this->pdo);
            $newName = $releaseCleaning->fixerCleaner($name);
            if (strtolower($newName) != strtolower($release["searchname"])) {
                $this->matched = true;
                $this->relid = $release["releaseid"];
                $determinedCategory = $this->category->determineCategory($release['group_id'], $newName);
                if ($type === "PAR2, ") {
                    $newName = ucwords($newName);
                    if (preg_match('/(.+?)\\.[a-z0-9]{2,3}(PAR2)?$/i', $name, $match)) {
                        $newName = $match[1];
                    }
                }
                $this->fixed++;
                $newName = explode("\\", $newName);
                $newName = preg_replace(['/^[-=_\\.:\\s]+/', '/[-=_\\.:\\s]+$/'], '', $newName[0]);
                if ($this->echooutput === true && $show === 1) {
                    $groupName = $this->_groups->getByNameByID($release['group_id']);
                    $oldCatName = $this->category->getNameByID($release['categoryid']);
                    $newCatName = $this->category->getNameByID($determinedCategory);
                    if ($type === "PAR2, ") {
                        echo PHP_EOL;
                    }
                    echo $this->pdo->log->headerOver("\nNew name:  ") . $this->pdo->log->primary(substr($newName, 0, 255)) . $this->pdo->log->headerOver("Old name:  ") . $this->pdo->log->primary($release["searchname"]) . $this->pdo->log->headerOver("Use name:  ") . $this->pdo->log->primary($release["name"]) . $this->pdo->log->headerOver("New cat:   ") . $this->pdo->log->primary($newCatName) . $this->pdo->log->headerOver("Old cat:   ") . $this->pdo->log->primary($oldCatName) . $this->pdo->log->headerOver("Group:     ") . $this->pdo->log->primary($groupName) . $this->pdo->log->headerOver("Method:    ") . $this->pdo->log->primary($type . $method) . $this->pdo->log->headerOver("ReleaseID: ") . $this->pdo->log->primary($release["releaseid"]);
                    if (isset($release['filename']) && $release['filename'] != "") {
                        echo $this->pdo->log->headerOver("Filename:  ") . $this->pdo->log->primary($release["filename"]);
                    }
                    if ($type !== "PAR2, ") {
                        echo "\n";
                    }
                }
                $newTitle = $this->pdo->escapeString(substr($newName, 0, 255));
                if ($echo == true) {
                    if ($nameStatus == 1) {
                        $status = '';
                        switch ($type) {
                            case "NFO, ":
                                $status = "isrenamed = 1, iscategorized = 1, proc_nfo = 1,";
                                break;
                            case "PAR2, ":
                                $status = "isrenamed = 1, iscategorized = 1, proc_par2 = 1,";
                                break;
                            case "Filenames, ":
                            case "file matched source: ":
                                $status = "isrenamed = 1, iscategorized = 1, proc_files = 1,";
                                break;
                            case "SHA1, ":
                            case "MD5, ":
                                $status = "isrenamed = 1, iscategorized = 1, dehashstatus = 1,";
                                break;
                            case "PreDB FT Exact, ":
                                $status = "isrenamed = 1, iscategorized = 1,";
                                break;
                            case "sorter ":
                                $status = "isrenamed = 1, iscategorized = 1, proc_sorter = 1,";
                                break;
                        }
                        $this->pdo->queryExec(sprintf('
								UPDATE releases
								SET videos_id = 0, tv_episodes_id = 0, imdbid = NULL, musicinfoid = NULL,
									consoleinfoid = NULL, bookinfoid = NULL, anidbid = NULL, preid = %d,
									searchname = %s, %s categoryid = %d
								WHERE id = %d', $preId, $newTitle, $status, $determinedCategory, $release['releaseid']));
                        $this->sphinx->updateRelease($release['releaseid'], $this->pdo);
                    } else {
                        $newTitle = $this->pdo->escapeString(substr($newName, 0, 255));
                        $this->pdo->queryExec(sprintf('
								UPDATE releases
								SET videos_id = 0, tv_episodes_id = 0, imdbid = NULL, musicinfoid = NULL,
									consoleinfoid = NULL, bookinfoid = NULL, anidbid = NULL, preid = %d,
									searchname = %s, iscategorized = 1, categoryid = %d
								WHERE id = %d', $preId, $newTitle, $determinedCategory, $release['releaseid']));
                        $this->sphinx->updateRelease($release['releaseid'], $this->pdo);
                    }
                }
            }
        }
        $this->done = true;
    }
Ejemplo n.º 5
0
$rename = false;
if ($argv[3] === 'true') {
    $rename = true;
}
require_once dirname(__FILE__) . '/../../../www/config.php';
$pdo = new Settings();
$group = $pdo->queryOneRow(sprintf('SELECT id FROM groups WHERE name = %s', $pdo->escapeString($argv[1])));
if ($group === false) {
    exit('No group with name ' . $argv[1] . ' found in the database.');
}
$releases = $pdo->query(sprintf('SELECT name, searchname, fromname, size, id FROM releases WHERE group_id = %d %s ORDER BY postdate LIMIT %d', $group['id'], $category, $argv[2]));
if (count($releases) === 0) {
    exit('No releases found in your database for group ' . $argv[1] . PHP_EOL);
}
$RC = new ReleaseCleaning($pdo);
$sphinx = new SphinxSearch();
foreach ($releases as $release) {
    $newName = $RC->releaseCleaner($release['name'], $release['fromname'], $release['size'], $argv[1]);
    if (is_array($newName)) {
        $newName = $newName['cleansubject'];
    }
    if ($newName !== $release['searchname']) {
        echo 'Old name: ' . $release['searchname'] . PHP_EOL;
        echo 'New name: ' . $newName . PHP_EOL . PHP_EOL;
        if ($rename === true) {
            $newName = $pdo->escapeString($newName);
            $pdo->queryExec(sprintf('UPDATE releases SET searchname = %s WHERE id = %d', $newName, $release['id']));
            $sphinx->updateReleaseSearchName($release['id'], $newName);
        }
    }
}
Ejemplo n.º 6
0
<?php

/* This script runs the subject names through namecleaner to create a clean search name, it also recategorizes and runs the releases through namefixer.
 * Type php resetSearchname.php to see detailed info. */
require_once realpath(dirname(dirname(dirname(__DIR__))) . DIRECTORY_SEPARATOR . 'indexer.php');
use nzedb\ConsoleTools;
use nzedb\NameFixer;
use nzedb\processing\ProcessReleases;
use nzedb\ReleaseCleaning;
use nzedb\SphinxSearch;
use nzedb\db\Settings;
$pdo = new Settings();
$sphinx = new SphinxSearch();
$show = 2;
if (isset($argv[2]) && $argv[2] === 'show') {
    $show = 1;
}
if (isset($argv[1]) && $argv[1] == "full") {
    $res = $pdo->query("SELECT releases.id, releases.name, releases.fromname, releases.size, groups.name AS gname FROM releases INNER JOIN groups ON releases.group_id = groups.id");
    if (count($res) > 0) {
        echo $pdo->log->header("Going to recreate all search names, recategorize them and fix the names with namefixer, this can take a while.");
        $done = 0;
        $timestart = time();
        $consoletools = new ConsoleTools(['ColorCLI' => $pdo->log]);
        $rc = new ReleaseCleaning($pdo);
        foreach ($res as $row) {
            $newname = $rc->releaseCleaner($row['name'], $row['fromname'], $row['size'], $row['gname']);
            if (is_array($newname)) {
                $newname = $newname['cleansubject'];
            }
            $newname = $pdo->escapeString($newname);
Ejemplo n.º 7
0
}
$rename = false;
if ($argv[3] === 'true') {
    $rename = true;
}
$pdo = new Settings();
$group = $pdo->queryOneRow(sprintf('SELECT id FROM groups WHERE name = %s', $pdo->escapeString($argv[1])));
if ($group === false) {
    exit('No group with name ' . $argv[1] . ' found in the database.');
}
$releases = $pdo->query(sprintf('SELECT name, searchname, fromname, size, id FROM releases WHERE group_id = %d %s ORDER BY postdate LIMIT %d', $group['id'], $category, $argv[2]));
if (count($releases) === 0) {
    exit('No releases found in your database for group ' . $argv[1] . PHP_EOL);
}
$RC = new ReleaseCleaning($pdo);
$sphinx = new SphinxSearch();
foreach ($releases as $release) {
    $newName = $RC->releaseCleaner($release['name'], $release['fromname'], $release['size'], $argv[1]);
    if (is_array($newName)) {
        $newName = $newName['cleansubject'];
    }
    if ($newName !== $release['searchname']) {
        echo 'Old name: ' . $release['searchname'] . PHP_EOL;
        echo 'New name: ' . $newName . PHP_EOL . PHP_EOL;
        if ($rename === true) {
            $newName = $pdo->escapeString($newName);
            $pdo->queryExec(sprintf('UPDATE releases SET searchname = %s WHERE id = %d', $newName, $release['id']));
            $sphinx->updateRelease($release['id']);
        }
    }
}
Ejemplo n.º 8
0
 /**
  * Delete release files for a release ID.
  *
  * @param int $id The release ID.
  *
  * @return mixed
  */
 public function delete($id)
 {
     $res = $this->pdo->queryExec(sprintf("DELETE FROM release_files WHERE releaseid = %d", $id));
     $this->sphinxSearch->updateRelease($id, $this->pdo);
     return $res;
 }
Ejemplo n.º 9
0
<?php

/* This script runs the subject names through namecleaner to create a clean search name, it also recategorizes and runs the releases through namefixer.
 * Type php resetSearchname.php to see detailed info. */
require_once dirname(__FILE__) . '/../../../www/config.php';
use nzedb\ConsoleTools;
use nzedb\NameFixer;
use nzedb\processing\ProcessReleases;
use nzedb\ReleaseCleaning;
use nzedb\SphinxSearch;
use nzedb\db\Settings;
$pdo = new Settings();
$sphinx = new SphinxSearch();
$show = 2;
if (isset($argv[2]) && $argv[2] === 'show') {
    $show = 1;
}
if (isset($argv[1]) && $argv[1] == "full") {
    $res = $pdo->query("SELECT releases.id, releases.name, releases.fromname, releases.size, groups.name AS gname FROM releases INNER JOIN groups ON releases.group_id = groups.id");
    if (count($res) > 0) {
        echo $pdo->log->header("Going to recreate all search names, recategorize them and fix the names with namefixer, this can take a while.");
        $done = 0;
        $timestart = time();
        $consoletools = new ConsoleTools(['ColorCLI' => $pdo->log]);
        $rc = new ReleaseCleaning($pdo);
        foreach ($res as $row) {
            $newname = $rc->releaseCleaner($row['name'], $row['fromname'], $row['size'], $row['gname']);
            if (is_array($newname)) {
                $newname = $newname['cleansubject'];
            }
            $newname = $pdo->escapeString($newname);