Commit d6486fa6 by Phạm Văn Đoan

cập nhật blacklist listen lấy từ db

parent f513c13c
......@@ -66,8 +66,11 @@ class CrawlerTrackListenCommand extends Command
echo "\n Tổng số bài hát đã lấy lượt nghe hôm nay: " . count($crawlered);
// Lấy blacklist
$blacklist_listen = $this->trackRepository->getBacklistListen($from_page);
// Lấy mảng bài hát theo từng hệ thống nhạc
$inserted = $this->trackRepository->getTrackBySource($from_page, $crawlered, $limit);
$inserted = $this->trackRepository->getTrackBySource($from_page, $crawlered, $limit, false, $blacklist_listen);
$total = count($inserted);
echo "\n Tổng số bài hát cần lấy lượt nghe: " . $total;
......
......@@ -169,7 +169,7 @@ class UpdateTrackArtistCommand extends Command
}
// Xử lý cập nhật nhạc sĩ ------------------------------------------------------------------------------
$tracks_nct = $this->trackRepository->getTrackBySource($src, null, 100, true);
$tracks_nct = $this->trackRepository->getTrackBySource($src, null, 100, true, null);
$track_id_composer = $this->trackRepository->getComposerBySource($src, $tracks_nct);
if (count($track_id_composer) > 0) {
$this->privateUpdateTrackSinger($src, $tracks_nct, [], $track_id_composer);
......
......@@ -6,6 +6,7 @@ class Constants
{
const TABLE_ARTISTS = 'artists';
const TABLE_COUNT_VIEWS = 'count_views';
const TABLE_CRAWLER_LISTEN_BLACKLISTS = 'crawler_listen_blacklists';
const TABLE_CRAWLER_LISTEN_HISTORIES = 'crawler_listen_histories';
const TABLE_CRAWLER_LISTEN_NCTS = 'crawler_listen_ncts';
const TABLE_CRAWLER_LISTENS = 'crawler_listens';
......
<?php
namespace App\Models;
use App\Helpers\Constants;
use Illuminate\Database\Eloquent\Model;
class CrawlerListenBlacklist extends Model
{
protected $table = Constants::TABLE_CRAWLER_LISTEN_BLACKLISTS;
public $timestamps = true;
protected $fillable = [
'track_id', 'src', 'title'
];
}
......@@ -4,6 +4,7 @@ namespace App\Repositories;
use App\Helpers\Constants;
use App\Models\CrawlerListen;
use App\Models\CrawlerListenBlacklist;
use App\Models\Track;
use Sunra\PhpSimple\HtmlDomParser;
use Yangqi\Htmldom\Htmldom;
......@@ -292,8 +293,8 @@ class TrackRepository extends BaseRepository
* Lấy ds bài hát chưa lấy lượt nghe trong ngày theo từng hệ thống nhạc
* Bài nào đã lấy rồi thì sẽ ko lấy nữa
* Mỗi lần quét 500 bài cho đến hết
* Các bài chỉ lấy ở Zing: 1198,1700,1954,3223,3334,3357,3529,3688
* Các bài chỉ lấy ở NCT: 1139,3835
* Các bài không lấy ở Zing: 1139,3835,3664
* Các bài không lấy ở NCT: 1198,1700,1954,3223,3334,3357,3529,3688,3918,3664,3910
*
* @param string $src
* @param $crawlered
......@@ -301,7 +302,7 @@ class TrackRepository extends BaseRepository
*
* @return array
*/
public function getTrackBySource($src='zing', $crawlered, $limit = Constants::CRAWLER_LISTEN_LIMIT, $is_update_composer=false)
public function getTrackBySource($src='zing', $crawlered, $limit = Constants::CRAWLER_LISTEN_LIMIT, $is_update_composer=false, $blacklist_listen=null)
{
$query = Track::select(['id', 'id_zing', 'id_nct', 'id_nhacvn', 'id_keeng', 'title', 'link_nct']);
......@@ -309,19 +310,29 @@ class TrackRepository extends BaseRepository
$query->whereNotIn('id', $crawlered);
}
if (is_array($blacklist_listen) && count($blacklist_listen) > 0) {
$query->whereNotIn('id', $blacklist_listen);
}
switch ($src) {
case 'zing':
$query->whereNotNull('id_zing')
->where('id_zing', '<>', '')
->whereNotIn('id', [1139,3835,3664]);
->where('id_zing', '<>', '');
if (empty($blacklist_listen)) {
// Set mặc định
$query->whereNotIn('id', [1139,3835,3664]);
}
break;
case 'nct':
$query->whereNotNull('id_nct')
->where('id_nct', '<>', '')
->whereNotIn('id', [1198,1700,1954,3223,3334,3357,3529,3688,3918,3664,3910]);
->where('id_nct', '<>', '');
if ($is_update_composer) {
$query->whereNull('composer_list');
}
if (empty($blacklist_listen)) {
// Set mặc định
$query->whereNotIn('id', [1198,1700,1954,3223,3334,3357,3529,3688,3918,3664,3910]);
}
break;
case 'nhacvn': $query->whereNotNull('id_nhacvn')->where('id_nhacvn', '<>', ''); break;
case 'keeng': $query->whereNotNull('id_keeng')->where('id_keeng', '<>', ''); break;
......@@ -443,5 +454,18 @@ class TrackRepository extends BaseRepository
return $tracks;
}
/**
* Lấy ds blacklist để bỏ lấy lượt nghe
*
* @param $src
*
* @return array
*/
public function getBacklistListen($src)
{
$query = CrawlerListenBlacklist::where('src', strtolower($src))->pluck('track_id');
return $query->toArray();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment