chrishardie / laravel-calendar-crawler
Laravel 包,用于抓取网页上的事件数据,生成相应的 ICS 推送
v1.0.0
2021-10-16 16:04 UTC
Requires
- php: ^7.4|^8.0
- ext-json: *
- fabpot/goutte: ^4.0
- google/apiclient: ^2.0
- html2text/html2text: ^4.3
- illuminate/contracts: ^8.37
- spatie/icalendar-generator: ^2.3
- spatie/laravel-package-tools: ^1.4.3
Requires (Dev)
- nunomaduro/collision: ^5.3
- orchestra/testbench: ^6.15
- pestphp/pest: ^1.18
- pestphp/pest-plugin-laravel: ^1.1
- vimeo/psalm: ^4.8
This package is auto-updated.
Last update: 2024-10-03 18:47:33 UTC
README
安装
您可以通过 composer 安装此包
composer require chrishardie/laravel-calendar-crawler
您可以使用以下命令发布和运行迁移
php artisan vendor:publish --provider="ChrisHardie\CalendarCrawler\CalendarCrawlerServiceProvider" --tag="calendar-crawler-migrations" php artisan migrate
您可以使用以下命令发布配置文件
php artisan vendor:publish --provider="ChrisHardie\CalendarCrawler\CalendarCrawlerServiceProvider" --tag="calendar-crawler-config"
这是已发布的配置文件内容
return [ 'default_update_frequency' => 720, // Refresh every 12 hours 'calendar_name' => 'Calendar of Events', 'calendar_description' => 'A calendar of events from various sources.', // Default URL of calendar ICS feed 'stream_url' => '/calendar/calendar.ics', // Source-specific authentication information 'auth' => [ 'google' => [ 'api_key' => env('GOOGLE_CAL_API_KEY'), ] ], ];
您可以为所有存储的事件的日历 ICS 推送添加一个 Web 路由
Route::calendarstream();
用法
- 使用管理界面、Artisan tinker 会话、DB 填充文件或直接数据库调用添加日历源。需要的主要字段包括
- 名称
- 类型(目前,
GoogleCalendar
或FacebookPage
) - 主页 URL
- 位置(Google 事件的日历 ID 或 Facebook 页面的数字 ID)
DB::table('calendar_sources')->insert([ 'name' => 'Your Local Government', 'type' => 'GoogleCalendar', 'home_url' => 'https://www.government.gov/', 'location' => 'googlecalendarid@gmail.com', ]); DB::table('calendar_sources')->insert([ 'name' => 'Cool Nonprofit Organization', 'type' => 'FacebookPage', 'home_url' => 'https://#/orgname/', 'location' => '12345678', ]);
- 如果您指定了任何 GoogleCalendar 源,您需要创建一个 API 密钥,然后在
.env
文件中定义一个GOOGLE_CAL_API_KEY
,其值为该密钥。 - 提供的源将根据指定的更新频率进行抓取。
- 您可以直接在 Laravel 应用程序中使用事件数据,或从指定的
stream_url
位置检索事件 ICS 日历推送。
抓取问题、错误和通知将被写入配置的日志堆栈。考虑使用 Slack 频道以方便起见。
卸载
删除安装期间创建的任何 Web 路由。
删除包及其依赖项
composer remove chrishardie/laravel-calendar-crawler
删除 config/calendar-crawler.php
。
在新迁移中删除相关表
Schema::dropIfExists('calendar_sources'); Schema::dropIfExists('events');
更新日志
有关最近更改的更多信息,请参阅 更新日志。
贡献
有关详细信息,请参阅 贡献指南。
致谢
许可证
MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件。