Commit graph

447 commits

Author SHA1 Message Date
Daniel Supernault
2e7b77a4c4
Update DeleteAccountPipeline 2022-12-28 19:34:16 -07:00
Daniel Supernault
260360ebd5
Update StatusTagsPipeline 2022-12-27 14:15:55 -07:00
Daniel Supernault
909a8a5a9b
Update lexer/extractor to handle banned hashtags 2022-12-27 05:23:54 -07:00
Daniel Supernault
257c094911
Update StatusDelete pipeline, dispatch async 2022-12-26 20:04:42 -07:00
Daniel Supernault
31fc65fc74
Update AP Inbox 2022-12-24 05:35:35 -07:00
Daniel Supernault
36b88901f3
Update AP Inbox 2022-12-24 05:31:49 -07:00
Daniel Supernault
04c2b041fc
Update media pipelines 2022-12-24 04:30:02 -07:00
Daniel Supernault
1cdc0fe8ed
Update delete pipelines 2022-12-24 04:28:52 -07:00
Daniel Supernault
aa32eb8780
Update DeletePipeline 2022-12-24 02:01:30 -07:00
Daniel Supernault
d4dfa95c30
Update ReplyPipelines, use more efficent reply count calculation 2022-12-24 01:44:39 -07:00
Daniel Supernault
91085c4566
Update StatusTagsPipeline, reject if type not set 2022-12-24 01:34:59 -07:00
Daniel Supernault
0d780ffbda
Update reply pipelines, restore reply_count logic 2022-12-24 01:19:11 -07:00
Daniel Supernault
836f384fb8
Update federation logic 2022-12-23 23:22:48 -07:00
Daniel Supernault
b457a44683
Update CommentPipeline, remove expensive reply count re-calculation query 2022-12-20 01:09:51 -07:00
Daniel Supernault
a2f8aad1d5
Update StatusReplyPipeline, remove expensive reply count re-calculation query 2022-12-20 01:02:03 -07:00
Daniel Supernault
06c10401c8
Update InboxPipeline 2022-12-19 23:17:24 -07:00
Daniel Supernault
f62d2494a4
Update InboxPipeline, dispatch Follow/Accept Follow jobs to follow queue 2022-12-13 00:46:25 -07:00
Daniel Supernault
99a674bab6
Fix typo in ActivityHandler pipeline 2022-12-13 00:31:10 -07:00
Daniel Supernault
e6c1604d43
Update InboxPipeline, add inbox job queue and separate http sig validation from activity handling 2022-12-13 00:27:46 -07:00
Daniel Supernault
a3b67a88dc
Update jobs timeout 2022-12-13 00:00:25 -07:00
daniel
6157e7a501
Merge pull request #3932 from pixelfed/fix-content-type
fix typo: http -> https
2022-12-12 19:15:29 -07:00
a
e380868b44 fix typo: http -> https 2022-12-12 17:30:48 -06:00
Daniel Supernault
bce1d547e7
Update InboxPipeline 2022-12-09 05:49:39 -07:00
Daniel Supernault
3cfa8b69fb
Update InboxPipeline 2022-12-09 05:45:48 -07:00
Daniel Supernault
d1b888b5a6
Update InboxPipeline, increase timeout from 60s to 300s 2022-12-09 05:08:20 -07:00
Daniel Supernault
f46b01af51
Update FollowerService, use redis sorted sets for following relations 2022-12-06 23:41:05 -07:00
daniel
80acafc67a
Merge pull request #3905 from pixelfed/fix-content-type
Fix: Use correct Content-Type over ActivityPub
2022-12-06 19:48:48 -07:00
a
6bf1bea325 Fix: Use correct Content-Type over ActivityPub
This was causing federation issues
2022-12-05 14:05:15 -06:00
Daniel Supernault
356cc2774a
Update FollowerService, use redis sorted sets for follower relations 2022-12-05 05:27:27 -07:00
Daniel Supernault
23e2998f94
Update DeleteAccountPipeline, handle flysystem v3 changes by checking files exist before attempting to delete 2022-12-05 01:52:24 -07:00
Daniel Supernault
6eabe07ca3
Update DeleteAccountPipeline, dispatch on low queue 2022-12-05 01:09:45 -07:00
Daniel Supernault
1fac8d545c
Update InboxPipeline 2022-12-05 00:16:38 -07:00
Daniel Supernault
25bc08adb9
Update FederationController 2022-12-04 22:15:50 -07:00
Daniel Supernault
02edd19d4d
Update Avatar pipeline, fix cloud storage media_path 2022-12-02 02:45:35 -07:00
Daniel Supernault
d52ee26dd7
Update AvatarStorage pipeline 2022-12-02 01:36:23 -07:00
Daniel Supernault
ae78129678
Update changelog 2022-12-01 20:31:20 -07:00
Daniel Supernault
5cac7fb44f
Revert nsfw posts hidden on local/network timelines by default 2022-11-28 05:13:12 -07:00
Daniel Supernault
3ebae614ce
Hide nsfw posts from public/network timelines by default 2022-11-25 22:57:31 -07:00
Daniel Supernault
bb12001992
Update InboxPipeline, bump request timeout from 5s to 60s 2022-11-18 02:56:57 -07:00
Daniel Supernault
1f7f6ca3a3
Update MediaDeletePipeline to handle flysystem v3 2022-11-14 01:47:53 -07:00
Daniel Supernault
04e8c96a7e
Update status deletion, fix database lock issues and side effects 2022-10-07 03:15:34 -06:00
Daniel Supernault
fefcbae911
Update federation logic 2022-10-05 03:38:30 -06:00
Daniel Supernault
99fb80bf5d
Update InboxPipeline, fix peertube attributedTo parsing 2022-09-01 05:15:20 -06:00
Daniel Supernault
6d6a033a54
Update DeleteWorker, remove cache lock 2022-08-31 20:57:20 -06:00
Daniel Supernault
1545e37cdb
Enforce blocks on incoming likes, shares, replies and follows 2022-08-07 20:59:36 -06:00
Daniel Supernault
149cf9dc29
Fix remote account post counts 2022-08-06 03:23:58 -06:00
Daniel Supernault
76edd2063d
Increase StatusReplyPipeline timeout 2022-08-06 00:19:27 -06:00
Daniel Supernault
47571887fe
Improve cache invalidation after processing VideoThumbnail to eliminate "No Preview Available" on grid feeds 2022-08-03 22:34:04 -06:00
Daniel Supernault
247c9ec5f8
Update DeleteWorker pipeline, increase timeout 2022-08-03 22:02:29 -06:00
Daniel Supernault
bb1cccbe03
Update MediaDeletePipeline, fix async media deletion 2022-06-19 06:52:06 -06:00
Daniel Supernault
44f4a9edd9
Improve CollectionService cache invalidation, fixes #3548 2022-06-18 23:47:16 -06:00
Daniel Supernault
4470981af7
Improve follow request flow, federate rejections and delete rejections from database to properly handle future follow requests from same actor 2022-06-11 03:27:52 -06:00
Daniel Supernault
4dc9365acb
Update AccountController, dispatch Accept Follow activity if applicable 2022-06-03 04:18:06 -06:00
Daniel Supernault
85fb46668c
Update FollowRequest model 2022-06-03 01:29:50 -06:00
Daniel Supernault
f6d1b0a24b
cs fix 2022-05-13 21:33:48 -06:00
Shlee
485c586ef2
Update MediaDeletePipeline.php 2022-05-13 15:40:03 +09:30
Daniel Supernault
d43908780f
Update StoryFanout, remove unused variable 2022-05-02 17:11:29 -06:00
noellabo
74cc41d4fa Add Content-Type and User-Agent for activity delivery 2022-05-03 01:58:20 +09:00
Daniel Supernault
cb2392f351
Update FederationController 2022-04-26 20:36:08 -06:00
Daniel Supernault
488561c270
Update ConfigCacheService, fail to fallback earlier 2022-04-09 22:33:14 -06:00
Daniel Supernault
4287f14bc5
Update InboxPipeline, fixes #3332 2022-04-06 01:03:05 -06:00
Daniel Supernault
b424691110
Update DeleteWorker, fixes #3338 2022-04-05 21:25:01 -06:00
Daniel Supernault
2533bd51a9
Update DeleteAccountPipeline, fix typo 2022-03-30 22:41:48 -06:00
Daniel Supernault
4870cc3b5d
Update DeleteAccountPipeline, improve coverage 2022-03-30 22:35:17 -06:00
Daniel Supernault
a9edd93fb5
Update DeleteAccountPipeline, fix perf issues 2022-03-30 21:44:44 -06:00
Daniel Supernault
c3c3ce1866
Update inbox, fixes #3315 2022-03-17 03:13:51 -06:00
Daniel Supernault
cd4f73bed9
Update inbox workers, fixes #3304 2022-03-16 21:02:23 -06:00
Daniel Supernault
20710f4d6e
Update InboxPipeline, fixes #3306 2022-03-12 23:49:11 -07:00
Daniel Supernault
3ef6c9fe81
Improve reblog api performance 2022-03-10 23:34:34 -07:00
Daniel Supernault
a84b173678
Update StatusTagsPipeline, process federated hashtags and mentions 2022-02-12 22:38:43 -07:00
Daniel Supernault
ccc94802ec
Update CommentPipeline, improve parent reply_count calculation - mysql only for now 2022-02-12 20:58:35 -07:00
Daniel Supernault
dbb1638fd6
Invalidate status cache after importing custom emoji 2022-01-21 01:28:36 -07:00
Daniel Supernault
489fdbb248
Update StatusTagPipeline 2022-01-19 00:58:13 -07:00
Daniel Supernault
dc17c9fc27
Improve emoji import 2022-01-19 00:46:30 -07:00
Daniel Supernault
1c20d6960a
Update MediaStorageService, fix reremote avatar bug 2022-01-17 17:11:16 -07:00
Daniel Supernault
1515a9f111
Update CommentPipeline 2022-01-08 04:59:28 -07:00
Daniel Mason
9cc18eb82a Fix for firstOrCreate failing hashtags with case differences on name 2022-01-05 19:45:19 +13:00
Daniel Supernault
b4bd0400c2
Store remote avatars locally if S3 not enabled 2022-01-02 21:30:02 -07:00
Daniel Supernault
92bc28456d
Update RemoteAvatarFetch job 2021-12-30 21:05:50 -07:00
Daniel Supernault
327073724f
Update StatusEntityLexer, prevent boosts and replies from being added to PublicTimelineService 2021-12-21 22:48:47 -07:00
Daniel Supernault
b8ebc00212
Update SharePipeline, fix variable bug 2021-12-14 21:13:30 -07:00
Daniel Supernault
0616a859d5
Update CommentPipeline, fix variable bug 2021-12-14 21:09:23 -07:00
Daniel Supernault
83b48b5681
Update StatusService, improve cache invalidation 2021-12-12 22:30:55 -07:00
Daniel Supernault
44b32d8bb6
Update SharePipeline 2021-12-12 19:32:11 -07:00
Daniel Supernault
b6b0837f49
Update CommentPipeline, move reply_count calculation to comment pipeline job and improve count calculation 2021-12-10 21:55:42 -07:00
Daniel Supernault
fe64e18712
Update LikePipeline jobs, fix likes_count calculation 2021-12-04 20:31:36 -07:00
Daniel Supernault
192553ff77
Update public timeline api, add experimental cache 2021-10-21 19:02:15 -06:00
Daniel Supernault
e73cf531cb
Update InstanceCrawlPipeline, remove unused variable 2021-09-03 23:00:30 -06:00
Daniel Supernault
c7a5715a60
Add StoryPipeline jobs 2021-09-03 21:18:33 -06:00
Daniel Supernault
da6943daed
Add InstancePipeline and NodeinfoService 2021-09-03 20:45:56 -06:00
Daniel Supernault
7709220074
Add Polls 2021-08-04 20:29:21 -06:00
Daniel Supernault
c1f14f89f6
Update FollowPipeline, fix cache invalidation bug 2021-07-25 01:36:57 -06:00
Daniel Supernault
ea0fc90c92
Add default licenses and license sync 2021-07-24 22:13:14 -06:00
Daniel Supernault
8ac8fcad3f
Update LikeController, add UndoLikePipeline and federate Undo Like activities 2021-07-21 03:41:28 -06:00
Daniel Supernault
7f4213924f
Update job queue, separate deletes into their own queue 2021-07-13 23:09:50 -06:00
Daniel Supernault
57e0a741ab
Add FanoutDeletePipeline 2021-07-09 02:07:14 -06:00
Daniel Supernault
1fdcbe5bf9
Update StatusEntityLexer, only add specific status types to PublicTimelineService 2021-07-07 01:53:28 -06:00
Daniel Supernault
6d956a86f4
Add mark as spammer mod tool, unlists and applies content warning to existing and future posts 2021-06-29 02:14:22 -06:00
Daniel Supernault
c8e40e0fd3
Update SharePipeline, add Undo->Announce support 2021-06-28 22:37:38 -06:00
Daniel Supernault
8edd829436
Update AP Helpers, generate notification for remote replies 2021-06-18 02:55:42 -06:00
Daniel Supernault
069a0e4ae1
Add WebP support 2021-06-08 03:22:01 -06:00
Daniel Supernault
41792eea56
Update config() to config_cache() 2021-05-18 22:45:04 -06:00
Daniel Supernault
f47161fcd9
Update StatusDeletePipeline 2021-05-12 22:16:35 -06:00
Daniel Supernault
7873b7ecc5
Update config() to config_cache() 2021-05-11 19:08:08 -06:00
Daniel Supernault
c65d03788b
Update config() to config_cache() 2021-05-11 19:07:03 -06:00
Daniel Supernault
53134208fe
Update config() to config_cache() 2021-05-11 18:17:03 -06:00
Daniel Supernault
a9f009305c
Update config() to config_cache() 2021-05-10 21:04:23 -06:00
Daniel Supernault
40f9aa6055
Update import job 2021-04-29 23:52:59 -06:00
daniel
f25452ea1a
Merge pull request #2642 from stelzch/dev
Create directory in InstagramImport
2021-04-29 23:52:09 -06:00
Daniel Supernault
ddc768871b
Update federation pipeline, add locks 2021-02-16 23:39:39 -07:00
Daniel Supernault
d1c5e9b867
Update InboxPipeline, fail earlier for invalid public keys. Fixes #2648 2021-02-12 22:25:34 -07:00
Christoph Stelz
f5aa89b2d2 Add fix for InstagramImport 2021-02-09 09:34:05 +01:00
Daniel Supernault
9fd90e174b
Update StatusDeletePipeline, use StorageMediaService for media deletes 2021-02-05 21:05:58 -07:00
Daniel Supernault
37dbb3de29
Update MediaStorageService, dispatch deletes to MediaDeletePipeline 2021-02-05 21:00:29 -07:00
Daniel Supernault
896452c74c
Update VideoThumbnail job, generate blurhash for videos 2021-01-30 17:30:04 -07:00
Daniel Supernault
3f772ff864
Update StatusDelete pipeline, call StatusService::del() to remove status from cache 2021-01-30 16:37:29 -07:00
Daniel Supernault
069f20ff77
Update LikePipeline, add StatusService del() method 2021-01-30 16:36:58 -07:00
Daniel Supernault
4f40f6f5a1
Update RemotAvatarFetch, only dispatch jobs if cloud storage is enabled 2021-01-30 09:47:02 -07:00
Daniel Supernault
4c148055cf
Update AvatarPipeline, add remote avatar fetch 2021-01-25 22:03:27 -07:00
Daniel Supernault
f930c4bda2
Update StatusDelete pipeline, fix object storage thumbnail deletion 2021-01-24 19:08:55 -07:00
Daniel Supernault
98c44f7bdb
Update VideoThumbnail, add MediaStoragePipeline 2021-01-24 18:58:38 -07:00
Daniel Supernault
889c3d8758
Update AvatarController, remove deprecated thumb_path 2021-01-24 18:22:13 -07:00
Daniel Supernault
be6d12fcb6
Update MediaPipeline, handle cloud object storage 2021-01-24 13:30:31 -07:00
Daniel Supernault
2284d85f9c
Update VideoThumbnail job, remove outdated cloud storage logic 2021-01-19 19:42:31 -07:00
Daniel Supernault
234f72f3aa
Update ImageOptimizePipeline, add skip_optimize and MediaStorageService support 2021-01-17 21:59:34 -07:00
Daniel Supernault
4b1a0fd750
Update StatusDelete job, handle cloud storage media deletes 2021-01-17 21:51:25 -07:00
Daniel Supernault
36a722aa3c
Update InboxValidator 2021-01-14 18:54:13 -07:00
Daniel Supernault
56256cb037
Update InboxPipeline, add missing import 2021-01-13 21:45:53 -07:00
Daniel Supernault
4a4d8f0069
Update InboxWorker, fix race condition in account deletes 2021-01-13 21:38:22 -07:00
Daniel Supernault
2bac25ebcd
Update InboxPipeline, increase timeout length 2021-01-07 14:04:12 -07:00
Daniel Supernault
d5cd2ad4cb
Update InboxPipeline, increase timeout length 2021-01-07 14:00:37 -07:00
Daniel Supernault
6dcd472be6
Update Profile, fix status count 2020-12-27 14:45:31 -07:00
Daniel Supernault
888ea7f07e
Update ap inbox 2020-12-18 02:58:00 -07:00
Daniel Supernault
f6528c8470
Update avatars, use jpeg default 2020-12-14 23:54:22 -07:00
Daniel Supernault
63eceb8236
Update delete handler 2020-12-14 02:58:07 -07:00
Daniel Supernault
a5019b8907
Update StatusController 2020-12-13 17:30:50 -07:00
Daniel Supernault
881fa86573
Update NotificationTransformer, handle tagged deletes 2020-12-13 17:28:33 -07:00
Daniel Supernault
b892bcf0e8
Add autospam feature 2020-12-10 21:58:56 -07:00
Daniel Supernault
b3078f274f
Update DeleteAccountPipeline, add AccountInterstitial and DirectMessage purging 2020-12-05 00:20:45 -07:00
Daniel Supernault
4fbada5586
Update InboxPipeline 2020-11-26 01:22:53 -07:00
Daniel Supernault
4733ca9fb9
Add shared inbox 2020-11-26 00:39:01 -07:00
Daniel Supernault
776cd4398b
Update ImportInstagram pipeline 2020-05-25 21:27:31 -06:00
Daniel Supernault
6476855519
Update jobs, add retry and timeout attributes 2020-05-22 15:53:59 -06:00
Daniel Supernault
2ab58fb723
Update InboxValidator, oof 2020-05-21 20:58:31 -06:00
Daniel Supernault
011e2c964c
Update InboxValidator 2020-05-21 20:44:13 -06:00
Daniel Supernault
938e721e91
Update InboxValidator 2020-05-21 20:29:51 -06:00
Daniel Supernault
3ec5102c24
Update FederationController, move signature validation to InboxValidator job 2020-05-21 19:49:30 -06:00
Daniel Supernault
b5899648c5
Update SharePipeline, fix item relation bug 2020-03-20 23:22:10 -06:00
Ashley Hull
9c84df49ff typo 2020-02-22 19:33:35 +08:00
Daniel Supernault
f400c632f0
Update DeleteAccountPipeline, fixes #2016 2020-02-15 23:10:36 -07:00
Daniel Supernault
578d2f353d
Update DeleteAccountPipeline 2020-01-19 21:51:21 -07:00
Daniel Supernault
6bb8099583
Update VideoThumbnail pipeline job 2019-12-24 19:34:16 -07:00
Daniel Supernault
1199fb89f6
Update ImageUpdate pipeline job 2019-12-24 19:33:38 -07:00
Daniel Supernault
813ef12329
Update LikePipeline, fix typo 2019-12-14 20:34:56 -07:00
Daniel Supernault
1b9c1bfa34
Update LikePipeline, fix typo 2019-12-14 20:31:26 -07:00
Daniel Supernault
c369882b48
Update Redis namespace 2019-12-10 23:04:03 -07:00
Daniel Supernault
0c59a55e6d
Update SharePipeline, federate self boosts 2019-10-11 17:58:35 -06:00
Daniel Supernault
39f4b470b3
Update DiscoverController 2019-09-06 23:25:55 -06:00
Daniel Supernault
20baf7a7c9
Update InboxWorker 2019-08-27 19:14:56 -06:00
Daniel Supernault
b86a9d9524
Update StatusPipeline 2019-08-12 03:17:29 -06:00
Daniel Supernault
610d51c2ec
Update AP job 2019-08-07 11:28:18 -06:00
Daniel Supernault
14d43c2a7e
Update AP handler, deliver unlisted and followers-only posts 2019-08-06 21:36:36 -06:00
Daniel Supernault
f47d2113b1
Remove unused job 2019-08-05 21:15:43 -06:00
Daniel Supernault
60e9d547ae
Fix regression in comment mutes/blocks 2019-07-20 20:09:46 -06:00
Daniel Supernault
76c480bf85
Update DeleteAccountPipeline to delete StatusHashtags 2019-07-07 23:32:53 -06:00
Daniel Supernault
8ac2c9167c
Update StatusPipeline, add status_visibility to hashtag lexer 2019-07-07 23:32:05 -06:00
Daniel Supernault
7591eadbd1
Update Hashtag limit 2019-07-01 21:52:29 -06:00
Daniel Supernault
0516906183
Update MentionPipeline, prevent duplicate notifications for comments/mentions 2019-06-25 21:18:30 -06:00
Daniel Supernault
c8c441aa4c
Update SharePipeline 2019-06-24 22:23:01 -06:00
Daniel Supernault
d85fdb8304
Update StatusPipeline 2019-06-24 22:22:19 -06:00
Daniel Supernault
e5683f94d4
Update LikePipeline 2019-06-24 20:22:05 -06:00
Daniel Supernault
8c860dc2ed
Update SharePipeline 2019-06-23 23:50:42 -06:00
Daniel Supernault
9d2b5c43ba
Update FollowPipeline 2019-06-23 23:50:20 -06:00
Daniel Supernault
1bb3e0344b
Update ContactPipeline 2019-06-18 18:49:08 -06:00
Daniel Supernault
93b9035531
Add ContactPipeline 2019-06-18 18:23:48 -06:00
Daniel Supernault
5b55165acd
Update RemoteFollow job 2019-06-10 22:08:40 -06:00
Daniel Supernault
3679332114
Update InboxValidator job 2019-06-09 20:35:32 -06:00
Daniel Supernault
0e7f2bd0be
Update InboxValidator job 2019-06-09 19:16:37 -06:00
Daniel Supernault
21f211d354
Update InboxValidator job 2019-06-09 19:12:09 -06:00
Daniel Supernault
10f897b59f
Update InboxValidator job 2019-06-09 19:04:37 -06:00
Daniel Supernault
c75be9fb38
Update InboxValidator 2019-06-09 19:01:34 -06:00
Daniel Supernault
1b52febfab
Add InboxValidator job 2019-06-09 18:51:00 -06:00
Daniel Supernault
015c2f9954
Update StatusPipeline 2019-06-09 17:38:12 -06:00
Daniel Supernault
2f8d48a0d7
Update StatusEntityLexer 2019-06-09 17:27:42 -06:00
Daniel Supernault
0077544779
Update StatusDelete 2019-06-09 17:27:04 -06:00
Daniel Supernault
e14e18e6b4
Update VideoThumbnail pipeline 2019-06-09 12:53:15 -06:00
Kirk Strauser
5d263d1c2e
PixelFed -> Pixelfed
There was a remaining mix of capital-F "PixelFed" occurrences. This
changes everything to the same capitalization, "Pixelfed", for
consistency.
2019-06-05 18:21:19 -07:00
Daniel Supernault
44ba4749f9
Update VideoThumbnail 2019-06-01 18:09:57 -06:00
Daniel Supernault
a641db0764
Update avatar deletion 2019-05-27 20:03:19 -06:00
Daniel Supernault
a1c29b50e3
Update VideoPipeline 2019-05-26 18:36:04 -06:00
Daniel Supernault
777b103288
Update CommentPipeline 2019-05-20 21:35:09 -06:00
Daniel Supernault
0ce65865c6
Update StatusPipeline 2019-05-20 20:39:33 -06:00
Daniel Supernault
4bece20954
Update StatusPipeline 2019-05-20 19:36:52 -06:00
Daniel Supernault
f92b259232
Update LikePipeline 2019-05-03 19:18:47 -06:00
Daniel Supernault
fae385989e
Update DeleteAccountPipeline 2019-04-21 23:38:34 -06:00
Daniel Supernault
acd705e9d3
Update AvatarOptimize job 2019-04-06 16:45:32 -06:00
Daniel Supernault
541927634f
Remove identicons, use default avatar for new users 2019-04-06 16:20:41 -06:00
Daniel Supernault
63f920a143
Update AvatarOptimize job 2019-04-06 16:20:00 -06:00
Daniel Supernault
626bb4e700
Update FollowPipeline 2019-04-04 13:42:12 -06:00
Hawkheart
88d2488d08
extend URL validation
this code is currently dead, but improving it should it become live
2019-04-04 00:50:48 -04:00