PHPackages                             roxone/movie-nguonc-crawler - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. roxone/movie-nguonc-crawler

ActivePackage

roxone/movie-nguonc-crawler
===========================

Tool crawler

11↓100%PHP

Since Sep 17Pushed 2d ago1 watchersCompare

[ Source](https://github.com/cktpro/movie-crawl-tool)[ Packagist](https://packagist.org/packages/roxone/movie-nguonc-crawler)[ RSS](/packages/roxone-movie-nguonc-crawler/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (2)Used By (0)

roxone/movie-nguonc-crawler
===========================

[](#roxonemovie-nguonc-crawler)

Plugin crawler phim cho [Movie CMS](https://github.com/cktpro/movie-core). Lấy dữ liệu từ nguồn định dạng **ophim** và định dạng **nguonc**, kèm bộ công cụ quản lý ảnh đã crawl về.

> Tên repo là `movie-crawl-tool`, còn tên package trên Packagist là `roxone/movie-nguonc-crawler`.

Demo
----

[](#demo)

### Trang Crawl

[](#trang-crawl)

[![Alt text](https://camo.githubusercontent.com/6af6af1c9ef470eb0509ca6e938049dc7f471d1f2ba575f15579d9240b1fe01e/68747470733a2f2f692e6962622e636f2f575079394870372f435241574c45522d494e4445582e706e67 "Crawler Page")](https://camo.githubusercontent.com/6af6af1c9ef470eb0509ca6e938049dc7f471d1f2ba575f15579d9240b1fe01e/68747470733a2f2f692e6962622e636f2f575079394870372f435241574c45522d494e4445582e706e67)

### Trang Cấu Hình

[](#trang-cấu-hình)

[![Alt text](https://camo.githubusercontent.com/0a2a683c517b8066b86747273e01638f433cf37b86a7d27a6292f299723285a7/68747470733a2f2f692e6962622e636f2f7a6d44597752642f435241574c45522d4f5054494f4e2e706e67 "Options Page")](https://camo.githubusercontent.com/0a2a683c517b8066b86747273e01638f433cf37b86a7d27a6292f299723285a7/68747470733a2f2f692e6962622e636f2f7a6d44597752642f435241574c45522d4f5054494f4e2e706e67)

### Cấu Hình Tự Động

[](#cấu-hình-tự-động)

[![Alt text](https://camo.githubusercontent.com/8a3da37277541645db7d74658e18e1b9f63c785e7a827cf4c42d831c831c3008/68747470733a2f2f692e6962622e636f2f356a59337332502f435241574c45522d5343484544554c452e706e67 "Options Page")](https://camo.githubusercontent.com/8a3da37277541645db7d74658e18e1b9f63c785e7a827cf4c42d831c831c3008/68747470733a2f2f692e6962622e636f2f356a59337332502f435241574c45522d5343484544554c452e706e67)

Yêu cầu
-------

[](#yêu-cầu)

- [roxone/movie-core](https://github.com/cktpro/movie-core) (`dev-main`)
- `intervention/image` ^2.7 — kéo theo tự động
- PHP có `gd` (hoặc Imagick) **hỗ trợ WebP** nếu muốn dùng chức năng chuyển ảnh sang WebP

Cài đặt
-------

[](#cài-đặt)

```
composer require roxone/movie-nguonc-crawler
php artisan optimize:clear
```

Cập nhật
--------

[](#cập-nhật)

```
composer update roxone/movie-nguonc-crawler
php artisan optimize:clear
```

Các trang trong admin
---------------------

[](#các-trang-trong-admin)

TrangĐường dẫnViệcCrawler`/admin/plugin/movie-crawler`crawl nguồn định dạng ophimCrawler Nguonc`/admin/plugin/nguonc-crawler`crawl nguồn định dạng nguoncOption`/admin/plugin/movie-crawler/options`cấu hình: nguồn, ảnh, R2, lịch chạyChuyển ảnh lên R2`/admin/plugin/movie-crawler/images-r2`đưa ảnh của phim hiện có lên Cloudflare R2Chuyển ảnh sang WebP`/admin/plugin/movie-crawler/images-webp`encode ảnh của phim hiện có sang WebPDọn ảnh rác`/admin/plugin/movie-crawler/images-cleanup`xoá thư mục ảnh của phim đã bị xoá / đổi slugLệnh
----

[](#lệnh)

```
# Chạy thủ công một lượt crawl theo cấu hình đang lưu
php artisan movie:plugins:movie-crawler:schedule

# Đưa ảnh lên R2 (bỏ --run để chỉ liệt kê)
php artisan movie:plugins:movie-crawler:images-to-r2 --run [--limit=N] [--force]

# Chuyển ảnh sang WebP
php artisan movie:plugins:movie-crawler:images-to-webp --run [--limit=N] [--delete-original] [--with-external] [--force]

# Dọn ảnh mồ côi (mặc định dry-run)
php artisan movie:plugins:movie-crawler:cleanup-images
```

Lưu ảnh
-------

[](#lưu-ảnh)

Option **Nơi lưu ảnh** chọn giữa `local` (`storage/app/public`) và `r2` (Cloudflare R2 qua S3 driver). Cấu hình R2 lấy từ biến `R2_*` trong `.env`, bị ghi đè bởi các ô ở tab *Cloudflare R2* trong Options.

Đổi disk hoặc đổi định dạng **không** tự di chuyển ảnh cũ — đó là việc của hai trang *Chuyển ảnh lên R2* và *Chuyển ảnh sang WebP*. Cả hai chạy theo lô, chạy lại được nhiều lần (ảnh đã xử lý tự bị bỏ qua), và đổi link trong DB bằng query builder để không chạm `updated_at` — nếu chạm, mọi phim sẽ trông như vừa cập nhật và làm hỏng thứ tự "phim mới cập nhật" ngoài trang chủ.

Chuyển sang WebP mặc định **giữ nguyên file gốc**; muốn xoá thì tích ô trên form hoặc thêm `--delete-original`.

Cron
----

[](#cron)

```
* * * * * cd /path/to/project && php artisan schedule:run >> /dev/null 2>&1

```

Bật/tắt và đặt biểu thức cron của crawler ở Options › tab *Schedule*.

Ghi chú
-------

[](#ghi-chú)

- Cấu hình lưu trong bảng `settings`, khoá `hacoidev/movie-crawler.options`
- Log: `storage/logs/hacoidev/movie-crawler.log` (daily, giữ 7 ngày)
- Việc crawl chạy trực tiếp qua HTTP từ trang admin, không dùng queue — gom quá nhiều trang vào một lượt dễ chạm timeout của PHP/web server
- Tính idempotent dựa vào `movies.update_handler` + `update_identity` + `update_checksum`; không đổi thì bỏ qua, trừ khi bật *Force update*
- Hai định dạng nguồn được cài đặt thành các cặp method song song (`handle()`/`handle_nguonc()`, `get()`/`get_nguonc()`...), nên sửa một định dạng thường phải sửa đối xứng ở định dạng còn lại

Changelog
---------

[](#changelog)

### 2026-08

[](#2026-08)

- Thêm trang + lệnh **chuyển ảnh sang WebP** cho ảnh của phim đã có
- Thêm trang + lệnh **chuyển ảnh lên Cloudflare R2**
- Thêm trang + lệnh **dọn ảnh mồ côi**
- Vá `Option::get()` query DB mỗi lần gọi — với site vài chục nghìn phim, trang quản lý ảnh vượt `max_execution_time` nên không mở được
- Vá 6 lỗi ở luồng crawl định dạng ophim; vá danh sách thể loại/quốc gia rỗng ở 2 trang crawler
- Tách nút "Chọn hết"/"Bỏ hết" và tách khoá localStorage của 2 trang crawler

### 1.1.0

[](#110)

- Cập nhật crawler schedule

### 1.0.3

[](#103)

- Sửa logic lưu field khi crawl

### 1.0.2

[](#102)

- Bật kiểm tra `hasChange`

### 1.0.1

[](#101)

- Sửa đồng bộ tập phim

### 23/09/2022

[](#23092022)

- Ghi nhớ fields crawl + download images
- Fix crawl pages hạn chế timeout khi nhiều page

### 22/09/2022

[](#22092022)

- Thêm lọc bỏ qua theo định dạng
- Tạo thể loại đối với định dạng là `hoạt hình` và `tv shows`

###  Health Score

25

↑

LowBetter than 35% of packages

Maintenance65

Regular maintenance activity

Popularity4

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity20

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/32117962?v=4)[roxone](/maintainers/roxone)[@ROXone](https://github.com/ROXone)

---

Top Contributors

[![cktpro](https://avatars.githubusercontent.com/u/48953964?v=4)](https://github.com/cktpro "cktpro (18 commits)")

### Embed Badge

![Health badge](/badges/roxone-movie-nguonc-crawler/health.svg)

```
[![Health](https://phpackages.com/badges/roxone-movie-nguonc-crawler/health.svg)](https://phpackages.com/packages/roxone-movie-nguonc-crawler)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
