From ed7d11e449ff476692f4130c2218fb510771c4ac Mon Sep 17 00:00:00 2001 From: ticktackk Date: Fri, 2 Oct 2020 01:48:09 +0530 Subject: [PATCH 01/18] Increase version --- addon.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addon.json b/addon.json index 47e9502..9fc577f 100644 --- a/addon.json +++ b/addon.json @@ -2,8 +2,8 @@ "legacy_addon_id": "", "title": "Seeder", "description": "This add-on helps in filling development board with dummy data.", - "version_id": 1010013, - "version_string": "1.1.0 Alpha 3", + "version_id": 1010014, + "version_string": "1.1.0 Alpha 4", "dev": "TickTackk", "dev_url": "https://xenforo.com/community/members/batpool52.90375/", "faq_url": "", From ba189e0d56323f4c1d67efa7f940d475b9b77aa6 Mon Sep 17 00:00:00 2001 From: ticktackk Date: Fri, 2 Oct 2020 01:49:41 +0530 Subject: [PATCH 02/18] closes #36 --- CHANGELOG.md | 4 ++++ Seed/Thread.php | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ed1d12e..e0eae80 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ CHANGELOG ========================== +## 1.1.0 Alpha 4 (`1010014`) + +- **Fix:** Threads cannot be seeded (#36) + ## 1.1.0 Alpha 3 (`1010013`) - **Fix:** Updated license and readme files are not copied correctly to add-on archives (#29) diff --git a/Seed/Thread.php b/Seed/Thread.php index 9444adf..0761793 100644 --- a/Seed/Thread.php +++ b/Seed/Thread.php @@ -40,7 +40,7 @@ protected function seed(array $params = []): bool $threadCreator->setTags($faker->words($faker->numberBetween(10, 15))); $threadCreator->setContent(Lorem::sentence(), $faker->text); - if ($threadCreator->validate($errors)) + if (!$threadCreator->validate($errors)) { return false; } From 07b92d510a878fce67c62d06cc0fb616daaee200 Mon Sep 17 00:00:00 2001 From: ticktackk Date: Tue, 20 Oct 2020 07:22:39 +0530 Subject: [PATCH 03/18] closes #37 --- CHANGELOG.md | 1 + Cli/Command/Seed/SeedThreadmarkCategory.php | 18 ++++++++ Seed/AbstractSeed.php | 20 +++++++++ Seed/ThreadmarkCategory.php | 46 +++++++++++++++++++++ 4 files changed, 85 insertions(+) create mode 100644 Cli/Command/Seed/SeedThreadmarkCategory.php create mode 100644 Seed/ThreadmarkCategory.php diff --git a/CHANGELOG.md b/CHANGELOG.md index e0eae80..f19fce7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ CHANGELOG ## 1.1.0 Alpha 4 (`1010014`) +- **New:** Seed for threadmark category (#37) - **Fix:** Threads cannot be seeded (#36) ## 1.1.0 Alpha 3 (`1010013`) diff --git a/Cli/Command/Seed/SeedThreadmarkCategory.php b/Cli/Command/Seed/SeedThreadmarkCategory.php new file mode 100644 index 0000000..a01dd64 --- /dev/null +++ b/Cli/Command/Seed/SeedThreadmarkCategory.php @@ -0,0 +1,18 @@ +getUserGroupRepo()->findUserGroupsForList()->fetch()->keys(); + \shuffle($userGroupIds); + + return \array_slice($userGroupIds, $this->faker()->numberBetween(1, \count($userGroupIds))); + } + protected function service(string $class, ...$arguments) : AbstractService { return $this->app()->service($class, ...$arguments); @@ -437,6 +447,11 @@ protected function em() : EntityManager return $this->app()->em(); } + protected function formAction(bool $inTransaction = true) : FormAction + { + return $this->app()->formAction($inTransaction); + } + protected function app() : BaseApp { return $this->app; @@ -451,4 +466,9 @@ protected function getAttachmentHandler(string $contentType) : AttachmentHandler { return $this->getAttachmentRepo()->getAttachmentHandler($contentType); } + + protected function getUserGroupRepo() : UserGroupRepo + { + return $this->repository('XF:UserGroup'); + } } \ No newline at end of file diff --git a/Seed/ThreadmarkCategory.php b/Seed/ThreadmarkCategory.php new file mode 100644 index 0000000..ec10df8 --- /dev/null +++ b/Seed/ThreadmarkCategory.php @@ -0,0 +1,46 @@ +em()->create('SV\Threadmarks:ThreadmarkCategory'); + + $faker = $this->faker(); + $input = [ + 'display_order' => $faker->randomNumber(), + 'is_always_filtered_in_whats_new' => $faker->boolean, + 'is_selected_in_whats_new_by_default' => $faker->boolean, + 'is_selected_in_search_by_default' => $faker->boolean, + 'allowed_user_group_ids' => $faker->boolean ? [-1] : $this->getRandomUserGroupIds() + ]; + + $form = $this->formAction(); + $form->basicEntitySave($threadmarkCategory, $input); + + $form->apply(function () use($threadmarkCategory, $faker) + { + $masterTitle = $threadmarkCategory->getMasterPhrase(); + $masterTitle->phrase_text = implode(' ', Lorem::words()); + $masterTitle->save(); + }); + + if (!$form->run(false)) + { + return false; + } + + return true; + } +} \ No newline at end of file From 867704acf0382ae70827d056afeecd17ed5e8545 Mon Sep 17 00:00:00 2001 From: ticktackk Date: Thu, 22 Oct 2020 11:29:05 +0530 Subject: [PATCH 04/18] closes #38 --- CHANGELOG.md | 1 + Cli/Command/Seed/SeedPostThreadmark.php | 18 ++++++++ Seed/AbstractContentThreadmark.php | 56 +++++++++++++++++++++++++ Seed/PostThreadmark.php | 32 ++++++++++++++ 4 files changed, 107 insertions(+) create mode 100644 Cli/Command/Seed/SeedPostThreadmark.php create mode 100644 Seed/AbstractContentThreadmark.php create mode 100644 Seed/PostThreadmark.php diff --git a/CHANGELOG.md b/CHANGELOG.md index f19fce7..e7706cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ CHANGELOG ## 1.1.0 Alpha 4 (`1010014`) - **New:** Seed for threadmark category (#37) +- **New:** Seed for post threadmark (#38) - **Fix:** Threads cannot be seeded (#36) ## 1.1.0 Alpha 3 (`1010013`) diff --git a/Cli/Command/Seed/SeedPostThreadmark.php b/Cli/Command/Seed/SeedPostThreadmark.php new file mode 100644 index 0000000..393a101 --- /dev/null +++ b/Cli/Command/Seed/SeedPostThreadmark.php @@ -0,0 +1,18 @@ +faker(); + $randomContentAndContainer = $this->findRandomContentAndContainer(); + if (!$randomContentAndContainer) + { + return false; + } + [$content, $container] = $randomContentAndContainer; + + $threadmarkCreatorSvc = $this->getThreadmarkCreatorSvc($content, $container); + $threadmarkCreatorSvc->setLabel(\implode(' ', Lorem::words())); + $threadmarkCreatorSvc->setCategory($this->findRandomThreadmarkCategory()); + $threadmarkCreatorSvc->setPosition(false); + $threadmarkCreatorSvc->resetNesting($faker->boolean); + + if (!$threadmarkCreatorSvc->validate($errors)) + { + return false; + } + $threadmarkCreatorSvc->save(); + + return true; + } + + protected function getThreadmarkCreatorSvc( + ThreadmarkContentEntityInterface $content, + ThreadmarkContainerEntityInterface $container + ) : ThreadmarkCreatorSvc + { + return $this->service('SV\Threadmarks:Threadmark\Creator', $content, $container); + } + + protected function findRandomThreadmarkCategory() : ThreadmarkCategoryEntity + { + return $this->finderWithRandomOrder('SV\Threadmarks:ThreadmarkCategory')->fetchOne(); + } +} \ No newline at end of file diff --git a/Seed/PostThreadmark.php b/Seed/PostThreadmark.php new file mode 100644 index 0000000..b4eb2d0 --- /dev/null +++ b/Seed/PostThreadmark.php @@ -0,0 +1,32 @@ +finderWithRandomOrder('XF:Post') + ->where('Threadmark.threadmark_id', null) + ->with('Thread', true) + ->fetchOne(); + if (!$post) + { + return null; + } + + return [ + $post, + $post->Thread + ]; + } +} \ No newline at end of file From d5b5281e14cb69f6013f8b89b082bd535120887b Mon Sep 17 00:00:00 2001 From: ticktackk Date: Tue, 9 Mar 2021 23:20:01 +0530 Subject: [PATCH 05/18] closes #39 --- CHANGELOG.md | 1 + .../SeedConversationMessageThreadmark.php | 18 +++++++++++ Seed/ConversationMessageThreadmark.php | 31 +++++++++++++++++++ 3 files changed, 50 insertions(+) create mode 100644 Cli/Command/Seed/SeedConversationMessageThreadmark.php create mode 100644 Seed/ConversationMessageThreadmark.php diff --git a/CHANGELOG.md b/CHANGELOG.md index e7706cd..d3d9566 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ CHANGELOG - **New:** Seed for threadmark category (#37) - **New:** Seed for post threadmark (#38) +- **New:** Seed for conversation message threadmark (#39) - **Fix:** Threads cannot be seeded (#36) ## 1.1.0 Alpha 3 (`1010013`) diff --git a/Cli/Command/Seed/SeedConversationMessageThreadmark.php b/Cli/Command/Seed/SeedConversationMessageThreadmark.php new file mode 100644 index 0000000..92f0aec --- /dev/null +++ b/Cli/Command/Seed/SeedConversationMessageThreadmark.php @@ -0,0 +1,18 @@ +finderWithRandomOrder('XF:ConversationMessage') + ->where('Threadmark.threadmark_id', null) + ->where('user_id', \XF::visitor()->user_id) + ->with('Conversation', true) + ->fetchOne(); + + if (!$conversationMessage) + { + return null; + } + + return [ + $conversationMessage, + $conversationMessage->Conversation + ]; + } +} \ No newline at end of file From c5fe1525c22af4fc43c248661e14284cf686e1ef Mon Sep 17 00:00:00 2001 From: ticktackk Date: Tue, 9 Mar 2021 23:20:22 +0530 Subject: [PATCH 06/18] Tiny cleanup --- Seed/MediaGalleryItem.php | 9 +-------- Seed/PostThreadmark.php | 3 --- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/Seed/MediaGalleryItem.php b/Seed/MediaGalleryItem.php index 03127b3..bbb90f5 100644 --- a/Seed/MediaGalleryItem.php +++ b/Seed/MediaGalleryItem.php @@ -31,14 +31,7 @@ protected function seed(array $params = []): bool do { - if ($faker->boolean) - { - $container = $this->findRandomAlbum(); - } - else - { - $container = $this->findRandomAlbum(); - } + $container = $faker->boolean ? $this->findRandomAlbum() : $this->findRandomCategory(); } while ($container === null); diff --git a/Seed/PostThreadmark.php b/Seed/PostThreadmark.php index b4eb2d0..6dfe2f7 100644 --- a/Seed/PostThreadmark.php +++ b/Seed/PostThreadmark.php @@ -2,9 +2,6 @@ namespace TickTackk\Seeder\Seed; -use SV\Threadmarks\Entity\ThreadmarkContainerInterface as ThreadmarkContainerEntityInterface; -use SV\Threadmarks\Entity\ThreadmarkContentInterface as ThreadmarkContentEntityInterface; -use XF\Mvc\Entity\Entity; use SV\Threadmarks\XF\Entity\Post as ExtendedPostEntityFromThreadmarks; class PostThreadmark extends AbstractContentThreadmark From 0da50359a82a0f55c7f4f6e946be51e9d48c440e Mon Sep 17 00:00:00 2001 From: ticktackk Date: Tue, 9 Mar 2021 23:31:26 +0530 Subject: [PATCH 07/18] closes #41 --- CHANGELOG.md | 1 + Cli/Command/Seed/SeedDiscouragedIpAddress.php | 18 +++++++++++++ Seed/DiscouragedIpAddress.php | 26 +++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 Cli/Command/Seed/SeedDiscouragedIpAddress.php create mode 100644 Seed/DiscouragedIpAddress.php diff --git a/CHANGELOG.md b/CHANGELOG.md index d3d9566..2ba94d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ CHANGELOG - **New:** Seed for threadmark category (#37) - **New:** Seed for post threadmark (#38) - **New:** Seed for conversation message threadmark (#39) +- **New:** Seed for discouraged IP addresses (#41) - **Fix:** Threads cannot be seeded (#36) ## 1.1.0 Alpha 3 (`1010013`) diff --git a/Cli/Command/Seed/SeedDiscouragedIpAddress.php b/Cli/Command/Seed/SeedDiscouragedIpAddress.php new file mode 100644 index 0000000..e091547 --- /dev/null +++ b/Cli/Command/Seed/SeedDiscouragedIpAddress.php @@ -0,0 +1,18 @@ +faker(); + + $ip = $faker->boolean ? $faker->ipv4 : $faker->ipv6; + $reason = $faker->boolean ? $faker->text : ''; + + return $this->getBanningRepo()->discourageIp( + $ip, + $reason + ); + } + + protected function getBanningRepo() : BanningRepo + { + return $this->repository('XF:Banning'); + } +} \ No newline at end of file From 6962db4560c335e2a329360bb34cecfa45fa97a3 Mon Sep 17 00:00:00 2001 From: ticktackk Date: Tue, 9 Mar 2021 23:33:53 +0530 Subject: [PATCH 08/18] closes #43 --- CHANGELOG.md | 1 + Cli/Command/Seed/SeedUserBan.php | 18 +++++++++++++ Seed/UserBan.php | 45 ++++++++++++++++++++++++++++++++ 3 files changed, 64 insertions(+) create mode 100644 Cli/Command/Seed/SeedUserBan.php create mode 100644 Seed/UserBan.php diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ba94d3..b2660c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ CHANGELOG - **New:** Seed for post threadmark (#38) - **New:** Seed for conversation message threadmark (#39) - **New:** Seed for discouraged IP addresses (#41) +- **New:** Seed for banned users (#43) - **Fix:** Threads cannot be seeded (#36) ## 1.1.0 Alpha 3 (`1010013`) diff --git a/Cli/Command/Seed/SeedUserBan.php b/Cli/Command/Seed/SeedUserBan.php new file mode 100644 index 0000000..2e8db84 --- /dev/null +++ b/Cli/Command/Seed/SeedUserBan.php @@ -0,0 +1,18 @@ +where('is_admin', false) + ->where('is_moderator', false) + ->where('is_staff', false) + ->where('is_banned', false); + } + + protected function findRandomModOrAdmin() : UserEntity + { + return $this->finderWithRandomOrder('XF:User') + ->whereOr(['is_admin', true], ['is_moderator', true]) + ->fetchOne(); + } + + protected function seed(array $params = []): bool + { + $faker = $this->faker(); + $error = null; + + return $this->getBanningRepo()->banUser( + \XF::visitor(), + $faker->boolean ? $faker->dateTimeInInterval('+' . $faker->numberBetween(1, 10) . ' years')->getTimestamp() : 0, + $faker->boolean ? $faker->text : '', + $error, + $this->findRandomModOrAdmin() + ); + } + + protected function getBanningRepo() : BanningRepo + { + return $this->repository('XF:Banning'); + } +} \ No newline at end of file From 5c9b86ac75f1fee0288fbe82f96642ea6d04bfdc Mon Sep 17 00:00:00 2001 From: ticktackk Date: Tue, 9 Mar 2021 23:34:55 +0530 Subject: [PATCH 09/18] closes #44 --- CHANGELOG.md | 1 + Cli/Command/Seed/SeedIpAddressBan.php | 18 ++++++++++++++++++ Seed/IpAddressBan.php | 26 ++++++++++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 Cli/Command/Seed/SeedIpAddressBan.php create mode 100644 Seed/IpAddressBan.php diff --git a/CHANGELOG.md b/CHANGELOG.md index b2660c1..f571949 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ CHANGELOG - **New:** Seed for conversation message threadmark (#39) - **New:** Seed for discouraged IP addresses (#41) - **New:** Seed for banned users (#43) +- **New:** Seed for IP address bans (#44) - **Fix:** Threads cannot be seeded (#36) ## 1.1.0 Alpha 3 (`1010013`) diff --git a/Cli/Command/Seed/SeedIpAddressBan.php b/Cli/Command/Seed/SeedIpAddressBan.php new file mode 100644 index 0000000..04f768a --- /dev/null +++ b/Cli/Command/Seed/SeedIpAddressBan.php @@ -0,0 +1,18 @@ +faker(); + + $ip = $faker->boolean ? $faker->ipv4 : $faker->ipv6; + $reason = $faker->boolean ? $faker->text : ''; + + return $this->getBanningRepo()->banIp( + $ip, + $reason + ); + } + + protected function getBanningRepo() : BanningRepo + { + return $this->repository('XF:Banning'); + } +} \ No newline at end of file From a01bd75a656a4c79835d75abc25d12699ea98bb7 Mon Sep 17 00:00:00 2001 From: ticktackk Date: Tue, 9 Mar 2021 23:36:11 +0530 Subject: [PATCH 10/18] closes #42 --- CHANGELOG.md | 1 + Cli/Command/Seed/SeedUserReject.php | 18 ++++++++++++ Seed/UserReject.php | 43 +++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+) create mode 100644 Cli/Command/Seed/SeedUserReject.php create mode 100644 Seed/UserReject.php diff --git a/CHANGELOG.md b/CHANGELOG.md index f571949..b5e50f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ CHANGELOG - **New:** Seed for discouraged IP addresses (#41) - **New:** Seed for banned users (#43) - **New:** Seed for IP address bans (#44) +- **New:** Seed for rejected users (#42) - **Fix:** Threads cannot be seeded (#36) ## 1.1.0 Alpha 3 (`1010013`) diff --git a/Cli/Command/Seed/SeedUserReject.php b/Cli/Command/Seed/SeedUserReject.php new file mode 100644 index 0000000..9ad81a8 --- /dev/null +++ b/Cli/Command/Seed/SeedUserReject.php @@ -0,0 +1,18 @@ +where('is_admin', false) + ->where('is_moderator', false) + ->where('is_staff', false) + ->where('is_banned', false) + ->where('user_state', '!=', 'rejected'); + } + + protected function findRandomModOrAdmin() : UserEntity + { + return $this->finderWithRandomOrder('XF:User') + ->whereOr(['is_admin', true], ['is_moderator', true]) + ->fetchOne(); + } + + protected function seed(array $params = []): bool + { + $faker = $this->faker(); + $user = \XF::visitor(); + + $rejected = $user->rejectUser($faker->boolean ? $faker->text : '', $this->findRandomModOrAdmin()); + + if ($rejected && $faker->boolean) + { + $dateTimeObj = $faker->dateTimeInInterval('-' . $faker->numberBetween(1, 20) . ' years'); + $user->Reject->fastUpdate('reject_date', $dateTimeObj->getTimestamp()); + } + + return $rejected; + } +} \ No newline at end of file From db6139bf6753ec409d221e291feef377c5e0899f Mon Sep 17 00:00:00 2001 From: ticktackk Date: Tue, 9 Mar 2021 23:37:46 +0530 Subject: [PATCH 11/18] closes #45 --- CHANGELOG.md | 1 + Cli/Command/Seed/SeedErrorLog.php | 18 +++++ Seed/ErrorLog.php | 121 ++++++++++++++++++++++++++++++ 3 files changed, 140 insertions(+) create mode 100644 Cli/Command/Seed/SeedErrorLog.php create mode 100644 Seed/ErrorLog.php diff --git a/CHANGELOG.md b/CHANGELOG.md index b5e50f4..c3cbd86 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ CHANGELOG - **New:** Seed for banned users (#43) - **New:** Seed for IP address bans (#44) - **New:** Seed for rejected users (#42) +- **New:** Seed for server error logs (#45) - **Fix:** Threads cannot be seeded (#36) ## 1.1.0 Alpha 3 (`1010013`) diff --git a/Cli/Command/Seed/SeedErrorLog.php b/Cli/Command/Seed/SeedErrorLog.php new file mode 100644 index 0000000..03a8c8d --- /dev/null +++ b/Cli/Command/Seed/SeedErrorLog.php @@ -0,0 +1,18 @@ +faker(); + + /** @var ErrorLogEntity $errorLog */ + $errorLog = $this->em()->create('XF:ErrorLog'); + $errorLog->exception_date = $faker->dateTime()->getTimestamp(); + $errorLog->user_id = $this->getRegisteredUserOrGuest()->user_id; + $errorLog->ip_address = $faker->boolean ? (IpUtil::convertIpStringToBinary($faker->boolean ? $faker->ipv4 : $faker->ipv6)) : ''; + $errorLog->exception_type = $this->getRandomExceptionType(); + $errorLog->message = $faker->text; + $errorLog->request_state = $faker->randomElements(); + $errorLog->trace_string = $faker->text; + $errorLog->filename = $this->getRandomFile(); + $errorLog->line = $this->getRandomLineFromFilename($errorLog->filename); + + return $errorLog->save(); + } + + protected function getRegisteredUserOrGuest() : UserEntity + { + $faker = $this->faker(); + if ($faker->boolean) + { + return \XF::visitor(); + } + + return $this->getUserRepo()->getGuestUser($faker->boolean ? $faker->name : null); + } + + protected function getExceptionTypes() : array + { + return [ + 'InvalidArgumentException', + 'BadFunctionCallException', + 'DomainException', + 'LengthException', + 'OutOfRangeException', + 'RuntimeException', + 'OutOfBoundsException', + 'OverflowException', + 'RangeException', + 'UnderflowException', + 'UnexpectedValueException', + 'Exception', + 'Error', + ]; + } + + protected function getRandomExceptionType() : string + { + $exceptionTypes = $this->getExceptionTypes(); + $exceptionTypeIndex = \array_rand($exceptionTypes); + + return $exceptionTypes[$exceptionTypeIndex]; + } + + protected function getFileList() : array + { + if ($this->filesList === null) + { + $filesList = []; + + foreach (FileUtil::getRecursiveDirectoryIterator(\XF::getSourceDirectory()) AS $fileInfo) + { + if ($fileInfo->isDir()) + { + continue; + } + + $filesList[] = $fileInfo->getRealPath(); + } + + $this->filesList = $filesList; + } + + return $this->filesList; + } + + protected function getRandomFile() : string + { + $sourceDir = \XF::getSourceDirectory() . \XF::$DS; + + $fileList = $this->getFileList(); + $fileIndex = \array_rand($fileList); + $file = $fileList[$fileIndex]; + + return \substr($file, utf8_strlen($sourceDir)); + } + + protected function getRandomLineFromFilename(string $filePath) : int + { + $filePath = \XF::getSourceDirectory() . \XF::$DS . $filePath; + return $this->faker()->numberBetween(0, \count(\file($filePath))); + } + + protected function getUserRepo() : UserRepo + { + return $this->repository('XF:User'); + } +} \ No newline at end of file From 5d1ef956c4dff55333776c346dd124fe1798f040 Mon Sep 17 00:00:00 2001 From: ticktackk Date: Tue, 9 Mar 2021 23:42:16 +0530 Subject: [PATCH 12/18] closes #46 --- CHANGELOG.md | 1 + Cli/Command/Seed/SeedSpamTrigger.php | 18 ++++++++ Seed/SpamTrigger.php | 68 ++++++++++++++++++++++++++++ 3 files changed, 87 insertions(+) create mode 100644 Cli/Command/Seed/SeedSpamTrigger.php create mode 100644 Seed/SpamTrigger.php diff --git a/CHANGELOG.md b/CHANGELOG.md index c3cbd86..9f1425a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ CHANGELOG - **New:** Seed for IP address bans (#44) - **New:** Seed for rejected users (#42) - **New:** Seed for server error logs (#45) +- **New:** Seed for spam trigger log (#46) - **Fix:** Threads cannot be seeded (#36) ## 1.1.0 Alpha 3 (`1010013`) diff --git a/Cli/Command/Seed/SeedSpamTrigger.php b/Cli/Command/Seed/SeedSpamTrigger.php new file mode 100644 index 0000000..a6c0f3a --- /dev/null +++ b/Cli/Command/Seed/SeedSpamTrigger.php @@ -0,0 +1,18 @@ +where('is_admin', false) + ->where('is_moderator', false) + ->where('is_staff', false) + ->where('is_banned', false); + } + + /** + * @throws \XF\PrintableException + */ + protected function seed(array $params = []): bool + { + $randomContent = $this->findRandomContent(); + if (!$randomContent) + { + return false; + } + + $faker = $this->faker(); + + /** @var SpamTriggerLogEntity $spamTriggerLog */ + $spamTriggerLog = $this->em()->create('XF:SpamTriggerLog'); + $spamTriggerLog->content_type = $randomContent->getEntityContentType(); + $spamTriggerLog->content_id = $randomContent->getEntityId(); + $spamTriggerLog->log_date = $faker->dateTime->getTimestamp(); + $spamTriggerLog->user_id = \XF::visitor()->user_id; + $spamTriggerLog->result = $faker->text(25); + $spamTriggerLog->details = $faker->randomElements(); + $spamTriggerLog->request_state = $faker->randomElements(); + $spamTriggerLog->ip_address = IpUtil::convertIpStringToBinary($faker->boolean ? $faker->ipv6 : $faker->ipv4); + + try + { + return $spamTriggerLog->save(); + } + catch (DuplicateKeyException $exception) + { + return false; + } + } + + protected function findRandomContent() :? Entity + { + $contentTypes = $this->app()->getContentTypeField('spam_handler_class'); + $contentType = \array_rand($contentTypes); + $identifier = $this->app()->getContentTypeFieldValue($contentType, 'entity'); + if ($identifier === null) + { + return null; + } + + return $this->finderWithRandomOrder($identifier)->fetchOne(); + } +} \ No newline at end of file From b19d7b0fe5340ff4685e35665c9a367c87087534 Mon Sep 17 00:00:00 2001 From: ticktackk Date: Tue, 9 Mar 2021 23:42:58 +0530 Subject: [PATCH 13/18] closes #47 --- CHANGELOG.md | 1 + Cli/Command/Seed/SeedSpamCleanerLog.php | 18 ++++++ Seed/SpamCleanerLog.php | 83 +++++++++++++++++++++++++ 3 files changed, 102 insertions(+) create mode 100644 Cli/Command/Seed/SeedSpamCleanerLog.php create mode 100644 Seed/SpamCleanerLog.php diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f1425a..ea2b842 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ CHANGELOG - **New:** Seed for rejected users (#42) - **New:** Seed for server error logs (#45) - **New:** Seed for spam trigger log (#46) +- **New:** Seed for spam cleaner log (#47) - **Fix:** Threads cannot be seeded (#36) ## 1.1.0 Alpha 3 (`1010013`) diff --git a/Cli/Command/Seed/SeedSpamCleanerLog.php b/Cli/Command/Seed/SeedSpamCleanerLog.php new file mode 100644 index 0000000..f60548b --- /dev/null +++ b/Cli/Command/Seed/SeedSpamCleanerLog.php @@ -0,0 +1,18 @@ +where('is_admin', false) + ->where('is_moderator', false) + ->where('is_staff', false) + ->where('is_banned', false); + } + + protected function findRandomModOrAdmin() : UserEntity + { + return $this->finderWithRandomOrder('XF:User') + ->whereOr(['is_admin', true], ['is_moderator', true]) + ->fetchOne(); + } + + /** + * @param array $params + * + * @return bool + * + * @throws \XF\PrintableException + */ + protected function seed(array $params = []): bool + { + $randomContent = $this->findRandomContent(); + if (!$randomContent) + { + return false; + } + + $faker = $this->faker(); + + /** @var SpamCleanerLogEntity $spamCleanerLog */ + $spamCleanerLog = $this->em()->create('XF:SpamCleanerLog'); + $spamCleanerLog->data = $faker->randomElements(); + $spamCleanerLog->application_date = $faker->dateTime->getTimestamp(); + $spamCleanerLog->restored_date = $faker->boolean ? $faker->dateTime->getTimestamp() : 0; + + $visitor = \XF::visitor(); + $spamCleanerLog->user_id = $visitor->user_id; + $spamCleanerLog->username = $visitor->username; + + $applyingUser = $this->findRandomModOrAdmin(); + $spamCleanerLog->applying_user_id = $applyingUser->user_id; + $spamCleanerLog->applying_username = $applyingUser->username; + + try + { + return $spamCleanerLog->save(); + } + catch (DuplicateKeyException $exception) + { + return false; + } + } + + protected function findRandomContent() :? Entity + { + $contentTypes = $this->app()->getContentTypeField('spam_handler_class'); + $contentType = \array_rand($contentTypes); + $identifier = $this->app()->getContentTypeFieldValue($contentType, 'entity'); + if ($identifier === null) + { + return null; + } + + return $this->finderWithRandomOrder($identifier)->fetchOne(); + } +} \ No newline at end of file From 7da2c4e7e8b2f8dd82cb2bc2447e2927db7a291a Mon Sep 17 00:00:00 2001 From: ticktackk Date: Tue, 9 Mar 2021 23:47:20 +0530 Subject: [PATCH 14/18] closes #48 --- CHANGELOG.md | 1 + Cli/Command/Seed/SeedEmailBounceLog.php | 18 ++++++++ Seed/EmailBounceLog.php | 60 +++++++++++++++++++++++++ 3 files changed, 79 insertions(+) create mode 100644 Cli/Command/Seed/SeedEmailBounceLog.php create mode 100644 Seed/EmailBounceLog.php diff --git a/CHANGELOG.md b/CHANGELOG.md index ea2b842..0115325 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ CHANGELOG - **New:** Seed for server error logs (#45) - **New:** Seed for spam trigger log (#46) - **New:** Seed for spam cleaner log (#47) +- **New:** Seed for email bounce log (#48) - **Fix:** Threads cannot be seeded (#36) ## 1.1.0 Alpha 3 (`1010013`) diff --git a/Cli/Command/Seed/SeedEmailBounceLog.php b/Cli/Command/Seed/SeedEmailBounceLog.php new file mode 100644 index 0000000..5dffda2 --- /dev/null +++ b/Cli/Command/Seed/SeedEmailBounceLog.php @@ -0,0 +1,18 @@ +faker(); + + /** @var EmailBounceLogEntity $emailBounceLog */ + $emailBounceLog = $this->em()->create('XF:EmailBounceLog'); + $emailBounceLog->user_id = \XF::visitor()->user_id; + $emailBounceLog->email_date = $faker->dateTime()->getTimestamp(); + $emailBounceLog->log_date = $faker->dateTime()->getTimestamp(); + $emailBounceLog->recipient = $faker->name; + $emailBounceLog->raw_message = $faker->text; + + if ($faker->boolean) + { + $emailBounceLog->action_taken = 'hard'; + } + else if ($faker->boolean) + { + $emailBounceLog->action_taken = 'soft'; + } + else if ($faker->boolean) + { + $emailBounceLog->action_taken = 'soft_hard'; + } + else if ($faker->boolean) + { + $emailBounceLog->action_taken = 'untrusted'; + } + else if ($faker->boolean) + { + $emailBounceLog->action_taken = ''; + } + else if ($faker->boolean) + { + $emailBounceLog->action_taken = $faker->word; + } + + return $emailBounceLog->save(); + } +} \ No newline at end of file From 960c0e3cea309a4077259a694063190c9d4cb518 Mon Sep 17 00:00:00 2001 From: ticktackk Date: Wed, 10 Mar 2021 00:02:02 +0530 Subject: [PATCH 15/18] closes #49 --- CHANGELOG.md | 1 + Seed/AbstractNode.php | 20 ++++++++++++++++++++ Seed/Page.php | 25 +++++++++++++++++++++++++ 3 files changed, 46 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0115325..b2343cb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ CHANGELOG - **New:** Seed for spam cleaner log (#47) - **New:** Seed for email bounce log (#48) - **Fix:** Threads cannot be seeded (#36) +- **Fix:** Master template is not created for page nodes (#49) ## 1.1.0 Alpha 3 (`1010013`) diff --git a/Seed/AbstractNode.php b/Seed/AbstractNode.php index 273300d..e81a797 100644 --- a/Seed/AbstractNode.php +++ b/Seed/AbstractNode.php @@ -4,6 +4,9 @@ use Faker\Provider\Lorem; use XF\Entity\Node as NodeEntity; +use XF\Entity\Page as PageEntity; +use XF\Mvc\FormAction; +use XF\Entity\AbstractNode as AbstractNodeEntity; abstract class AbstractNode extends AbstractSeed { @@ -30,6 +33,21 @@ protected function getNodeInput() : array ]; } + /** + * @since 1.1.0 Alpha 4 + * + * @param NodeEntity $node + * @param AbstractNodeEntity $data + * @param FormAction $formAction + */ + protected function setupFormAction( + NodeEntity $node, + AbstractNodeEntity $data, + FormAction $formAction + ) : void + { + } + /** * @throws \XF\PrintableException */ @@ -45,6 +63,8 @@ protected function seed(array $params = []) : bool $node->addCascadedSave($data); $form->basicEntitySave($node, $this->getNodeInput()); + $this->setupFormAction($node, $data, $form); + if (!$form->run(false)) { return false; diff --git a/Seed/Page.php b/Seed/Page.php index 74ef69f..f56297a 100644 --- a/Seed/Page.php +++ b/Seed/Page.php @@ -3,6 +3,9 @@ namespace TickTackk\Seeder\Seed; use XF\Entity\AbstractNode as AbstractNodeEntity; +use XF\Entity\Node as NodeEntity; +use XF\Mvc\FormAction; +use XF\Entity\Page as PageEntity; class Page extends AbstractNode { @@ -20,6 +23,28 @@ protected function getNodeInput() : array return $nodeInput; } + /** + * @param NodeEntity $node + * @param AbstractNodeEntity|PageEntity $data + * @param FormAction $formAction + */ + protected function setupFormAction( + NodeEntity $node, + AbstractNodeEntity $data, + FormAction $formAction + ): void + { + $template = $data->getMasterTemplate(); + + $faker = $this->faker(); + $template->template = $faker->boolean ? $faker->randomHtml() : $faker->text(); + + $formAction->apply(function () use($template) + { + $template->save(); + }); + } + protected function getRandomParentNode() :? AbstractNodeEntity { $faker = $this->faker(); From d460843b06e73bc51b22601728bd80c2d5a80a60 Mon Sep 17 00:00:00 2001 From: ticktackk Date: Wed, 10 Mar 2021 00:07:17 +0530 Subject: [PATCH 16/18] Update faker to 1.9.2 --- composer.lock | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/composer.lock b/composer.lock index 27e7d22..43269a4 100644 --- a/composer.lock +++ b/composer.lock @@ -49,6 +49,10 @@ "provider", "youtube" ], + "support": { + "issues": "https://github.com/aalaap/faker-youtube/issues", + "source": "https://github.com/aalaap/faker-youtube/tree/1.2.1" + }, "time": "2018-02-15T06:24:43+00:00" }, { @@ -94,20 +98,24 @@ "picsum.photos", "provider" ], + "support": { + "issues": "https://github.com/bluemmb/Faker-PicsumPhotos/issues", + "source": "https://github.com/bluemmb/Faker-PicsumPhotos/tree/master" + }, "time": "2018-08-18T10:17:02+00:00" }, { "name": "fzaninotto/faker", - "version": "v1.9.1", + "version": "v1.9.2", "source": { "type": "git", "url": "https://github.com/fzaninotto/Faker.git", - "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f" + "reference": "848d8125239d7dbf8ab25cb7f054f1a630e68c2e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/fc10d778e4b84d5bd315dad194661e091d307c6f", - "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f", + "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/848d8125239d7dbf8ab25cb7f054f1a630e68c2e", + "reference": "848d8125239d7dbf8ab25cb7f054f1a630e68c2e", "shasum": "" }, "require": { @@ -144,7 +152,12 @@ "faker", "fixtures" ], - "time": "2019-12-12T13:22:17+00:00" + "support": { + "issues": "https://github.com/fzaninotto/Faker/issues", + "source": "https://github.com/fzaninotto/Faker/tree/v1.9.2" + }, + "abandoned": true, + "time": "2020-12-11T09:56:16+00:00" } ], "packages-dev": [], @@ -157,5 +170,5 @@ "ext-fileinfo": "*" }, "platform-dev": [], - "plugin-api-version": "1.1.0" + "plugin-api-version": "2.0.0" } From c8055c54a00b68d766f1d8702335c7d0cad35220 Mon Sep 17 00:00:00 2001 From: ticktackk Date: Wed, 10 Mar 2021 00:08:21 +0530 Subject: [PATCH 17/18] Update license --- LICENSE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE.md b/LICENSE.md index ffdeb72..053080d 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2019-2020 TickTackk +Copyright (c) 2019-2021 TickTackk Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From 2c6d489d88c8810e2cf100dc8443871e4e3c1224 Mon Sep 17 00:00:00 2001 From: ticktackk Date: Wed, 10 Mar 2021 00:08:27 +0530 Subject: [PATCH 18/18] Update readme files --- README.md | 61 ++++++++++------- _dev/resource_description.html | 2 +- _dev/resource_description.txt | 116 +++++++++++++++++++++++---------- 3 files changed, 117 insertions(+), 62 deletions(-) diff --git a/README.md b/README.md index a4363a7..9ba31cd 100644 --- a/README.md +++ b/README.md @@ -15,31 +15,42 @@ Requirements CLI Commands ------------ -| Command | Description | -| ------------------------------------------------ | ------------------------------------- | -| `tck-seeder:seed-user` | Seeds users | -| `tck-seeder:seed-media-gallery-album` | Seeds media gallery albums | -| `tck-seeder:seed-resource-manager-update` | Seeds resource manager updates | -| `tck-seeder:seed-media-gallery-comment-reaction` | Seeds media gallery comment reactions | -| `tck-seeder:seed-media-gallery-comment` | Seeds media gallery comments | -| `tck-seeder:seed-post-reaction` | Seeds post reactions | -| `tck-seeder:seed-conversation` | Seeds conversations | -| `tck-seeder:seed-forum` | Seeds forums | -| `tck-seeder:seed-page` | Seeds pages | -| `tck-seeder:seed-profile-post-reaction` | Seeds profile post reactions | -| `tck-seeder:seed-thread` | Seeds threads | -| `tck-seeder:seed-profile-post-comment` | Seeds profile post comments | -| `tck-seeder:seed-media-gallery-item-reaction` | Seeds media gallery item reactions | -| `tck-seeder:seed-media-gallery-category` | Seeds media gallery categories | -| `tck-seeder:seed-conversation-message` | Seeds conversation messages | -| `tck-seeder:seed-post` | Seeds posts | -| `tck-seeder:seed-profile-post` | Seeds profile posts | -| `tck-seeder:seed-category` | Seeds categories | -| `tck-seeder:seed-media-gallery-item` | Seeds media gallery media items | -| `tck-seeder:seed-resource-manager-category` | Seeds resource manager categories | -| `tck-seeder:seed-resource-manager-item` | Seeds resource manager items | -| `tck-seeder:seed-profile-post-comment-reaction` | Seeds profile post comment reactions | -| `tck-seeder:seed-media-gallery-album-reaction` | Seeds media gallery album reactions | +| Command | Description | +| ------------------------------------------------- | -------------------------------------- | +| `tck-seeder:seed-conversation` | Seeds conversations | +| `tck-seeder:seed-media-gallery-item` | Seeds media gallery media items | +| `tck-seeder:seed-user-reject` | Seeds user rejects | +| `tck-seeder:seed-profile-post-comment-reaction` | Seeds profile post comment reactions | +| `tck-seeder:seed-spam-cleaner-log` | Seeds spam cleaner log | +| `tck-seeder:seed-resource-manager-update` | Seeds resource manager updates | +| `tck-seeder:seed-media-gallery-item-reaction` | Seeds media gallery item reactions | +| `tck-seeder:seed-media-gallery-comment-reaction` | Seeds media gallery comment reactions | +| `tck-seeder:seed-media-gallery-album` | Seeds media gallery albums | +| `tck-seeder:seed-thread` | Seeds threads | +| `tck-seeder:seed-spam-trigger` | Seeds spam triggers | +| `tck-seeder:seed-error-log` | Seeds error logs | +| `tck-seeder:seed-page` | Seeds pages | +| `tck-seeder:seed-post-reaction` | Seeds post reactions | +| `tck-seeder:seed-post-threadmark` | Seeds post threadmarks | +| `tck-seeder:seed-post` | Seeds posts | +| `tck-seeder:seed-category` | Seeds categories | +| `tck-seeder:seed-media-gallery-comment` | Seeds media gallery comments | +| `tck-seeder:seed-conversation-message` | Seeds conversation messages | +| `tck-seeder:seed-ip-address-ban` | Seeds ip address bans | +| `tck-seeder:seed-media-gallery-category` | Seeds media gallery categories | +| `tck-seeder:seed-forum` | Seeds forums | +| `tck-seeder:seed-user-ban` | Seeds user bans | +| `tck-seeder:seed-user` | Seeds users | +| `tck-seeder:seed-discouraged-ip-address` | Seeds discouraged ip addresses | +| `tck-seeder:seed-conversation-message-threadmark` | Seeds conversation message threadmarks | +| `tck-seeder:seed-email-bounce-log` | Seeds email bounce logs | +| `tck-seeder:seed-profile-post-comment` | Seeds profile post comments | +| `tck-seeder:seed-resource-manager-item` | Seeds resource manager items | +| `tck-seeder:seed-media-gallery-album-reaction` | Seeds media gallery album reactions | +| `tck-seeder:seed-profile-post` | Seeds profile posts | +| `tck-seeder:seed-resource-manager-category` | Seeds resource manager categories | +| `tck-seeder:seed-threadmark-category` | Seeds threadmark categories | +| `tck-seeder:seed-profile-post-reaction` | Seeds profile post reactions | License ------- diff --git a/_dev/resource_description.html b/_dev/resource_description.html index 5d99c75..81d05e9 100644 --- a/_dev/resource_description.html +++ b/_dev/resource_description.html @@ -1,2 +1,2 @@ -

Seeder for XenForo 2.1.0+

Description

This add-on helps in filling development board with dummy data.

Requirements

  • PHP 7.2.0+
  • PHP Fileinfo module

CLI Commands

CommandDescription
tck-seeder:seed-userSeeds users
tck-seeder:seed-media-gallery-albumSeeds media gallery albums
tck-seeder:seed-resource-manager-updateSeeds resource manager updates
tck-seeder:seed-media-gallery-comment-reactionSeeds media gallery comment reactions
tck-seeder:seed-media-gallery-commentSeeds media gallery comments
tck-seeder:seed-post-reactionSeeds post reactions
tck-seeder:seed-conversationSeeds conversations
tck-seeder:seed-forumSeeds forums
tck-seeder:seed-pageSeeds pages
tck-seeder:seed-profile-post-reactionSeeds profile post reactions
tck-seeder:seed-threadSeeds threads
tck-seeder:seed-profile-post-commentSeeds profile post comments
tck-seeder:seed-media-gallery-item-reactionSeeds media gallery item reactions
tck-seeder:seed-media-gallery-categorySeeds media gallery categories
tck-seeder:seed-conversation-messageSeeds conversation messages
tck-seeder:seed-postSeeds posts
tck-seeder:seed-profile-postSeeds profile posts
tck-seeder:seed-categorySeeds categories
tck-seeder:seed-media-gallery-itemSeeds media gallery media items
tck-seeder:seed-resource-manager-categorySeeds resource manager categories
tck-seeder:seed-resource-manager-itemSeeds resource manager items
tck-seeder:seed-profile-post-comment-reactionSeeds profile post comment reactions
tck-seeder:seed-media-gallery-album-reactionSeeds media gallery album reactions

License

+

Seeder for XenForo 2.1.0+

Description

This add-on helps in filling development board with dummy data.

Requirements

  • PHP 7.2.0+
  • PHP Fileinfo module

CLI Commands

CommandDescription
tck-seeder:seed-conversationSeeds conversations
tck-seeder:seed-media-gallery-itemSeeds media gallery media items
tck-seeder:seed-user-rejectSeeds user rejects
tck-seeder:seed-profile-post-comment-reactionSeeds profile post comment reactions
tck-seeder:seed-spam-cleaner-logSeeds spam cleaner log
tck-seeder:seed-resource-manager-updateSeeds resource manager updates
tck-seeder:seed-media-gallery-item-reactionSeeds media gallery item reactions
tck-seeder:seed-media-gallery-comment-reactionSeeds media gallery comment reactions
tck-seeder:seed-media-gallery-albumSeeds media gallery albums
tck-seeder:seed-threadSeeds threads
tck-seeder:seed-spam-triggerSeeds spam triggers
tck-seeder:seed-error-logSeeds error logs
tck-seeder:seed-pageSeeds pages
tck-seeder:seed-post-reactionSeeds post reactions
tck-seeder:seed-post-threadmarkSeeds post threadmarks
tck-seeder:seed-postSeeds posts
tck-seeder:seed-categorySeeds categories
tck-seeder:seed-media-gallery-commentSeeds media gallery comments
tck-seeder:seed-conversation-messageSeeds conversation messages
tck-seeder:seed-ip-address-banSeeds ip address bans
tck-seeder:seed-media-gallery-categorySeeds media gallery categories
tck-seeder:seed-forumSeeds forums
tck-seeder:seed-user-banSeeds user bans
tck-seeder:seed-userSeeds users
tck-seeder:seed-discouraged-ip-addressSeeds discouraged ip addresses
tck-seeder:seed-conversation-message-threadmarkSeeds conversation message threadmarks
tck-seeder:seed-email-bounce-logSeeds email bounce logs
tck-seeder:seed-profile-post-commentSeeds profile post comments
tck-seeder:seed-resource-manager-itemSeeds resource manager items
tck-seeder:seed-media-gallery-album-reactionSeeds media gallery album reactions
tck-seeder:seed-profile-postSeeds profile posts
tck-seeder:seed-resource-manager-categorySeeds resource manager categories
tck-seeder:seed-threadmark-categorySeeds threadmark categories
tck-seeder:seed-profile-post-reactionSeeds profile post reactions

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

\ No newline at end of file diff --git a/_dev/resource_description.txt b/_dev/resource_description.txt index 20fa76d..a2ac7b3 100644 --- a/_dev/resource_description.txt +++ b/_dev/resource_description.txt @@ -13,97 +13,141 @@ This add-on helps in filling development board with dummy data. [TH]Description[/TH] [/TR] [TR] -[TD][ICODE]tck-seeder:seed-user[/ICODE][/TD] -[TD]Seeds users[/TD] +[TD][ICODE]tck-seeder:seed-conversation[/ICODE][/TD] +[TD]Seeds conversations[/TD] [/TR] [TR] -[TD][ICODE]tck-seeder:seed-media-gallery-album[/ICODE][/TD] -[TD]Seeds media gallery albums[/TD] +[TD][ICODE]tck-seeder:seed-media-gallery-item[/ICODE][/TD] +[TD]Seeds media gallery media items[/TD] +[/TR] +[TR] +[TD][ICODE]tck-seeder:seed-user-reject[/ICODE][/TD] +[TD]Seeds user rejects[/TD] +[/TR] +[TR] +[TD][ICODE]tck-seeder:seed-profile-post-comment-reaction[/ICODE][/TD] +[TD]Seeds profile post comment reactions[/TD] +[/TR] +[TR] +[TD][ICODE]tck-seeder:seed-spam-cleaner-log[/ICODE][/TD] +[TD]Seeds spam cleaner log[/TD] [/TR] [TR] [TD][ICODE]tck-seeder:seed-resource-manager-update[/ICODE][/TD] [TD]Seeds resource manager updates[/TD] [/TR] [TR] +[TD][ICODE]tck-seeder:seed-media-gallery-item-reaction[/ICODE][/TD] +[TD]Seeds media gallery item reactions[/TD] +[/TR] +[TR] [TD][ICODE]tck-seeder:seed-media-gallery-comment-reaction[/ICODE][/TD] [TD]Seeds media gallery comment reactions[/TD] [/TR] [TR] -[TD][ICODE]tck-seeder:seed-media-gallery-comment[/ICODE][/TD] -[TD]Seeds media gallery comments[/TD] +[TD][ICODE]tck-seeder:seed-media-gallery-album[/ICODE][/TD] +[TD]Seeds media gallery albums[/TD] [/TR] [TR] -[TD][ICODE]tck-seeder:seed-post-reaction[/ICODE][/TD] -[TD]Seeds post reactions[/TD] +[TD][ICODE]tck-seeder:seed-thread[/ICODE][/TD] +[TD]Seeds threads[/TD] [/TR] [TR] -[TD][ICODE]tck-seeder:seed-conversation[/ICODE][/TD] -[TD]Seeds conversations[/TD] +[TD][ICODE]tck-seeder:seed-spam-trigger[/ICODE][/TD] +[TD]Seeds spam triggers[/TD] [/TR] [TR] -[TD][ICODE]tck-seeder:seed-forum[/ICODE][/TD] -[TD]Seeds forums[/TD] +[TD][ICODE]tck-seeder:seed-error-log[/ICODE][/TD] +[TD]Seeds error logs[/TD] [/TR] [TR] [TD][ICODE]tck-seeder:seed-page[/ICODE][/TD] [TD]Seeds pages[/TD] [/TR] [TR] -[TD][ICODE]tck-seeder:seed-profile-post-reaction[/ICODE][/TD] -[TD]Seeds profile post reactions[/TD] +[TD][ICODE]tck-seeder:seed-post-reaction[/ICODE][/TD] +[TD]Seeds post reactions[/TD] [/TR] [TR] -[TD][ICODE]tck-seeder:seed-thread[/ICODE][/TD] -[TD]Seeds threads[/TD] +[TD][ICODE]tck-seeder:seed-post-threadmark[/ICODE][/TD] +[TD]Seeds post threadmarks[/TD] [/TR] [TR] -[TD][ICODE]tck-seeder:seed-profile-post-comment[/ICODE][/TD] -[TD]Seeds profile post comments[/TD] +[TD][ICODE]tck-seeder:seed-post[/ICODE][/TD] +[TD]Seeds posts[/TD] [/TR] [TR] -[TD][ICODE]tck-seeder:seed-media-gallery-item-reaction[/ICODE][/TD] -[TD]Seeds media gallery item reactions[/TD] +[TD][ICODE]tck-seeder:seed-category[/ICODE][/TD] +[TD]Seeds categories[/TD] [/TR] [TR] -[TD][ICODE]tck-seeder:seed-media-gallery-category[/ICODE][/TD] -[TD]Seeds media gallery categories[/TD] +[TD][ICODE]tck-seeder:seed-media-gallery-comment[/ICODE][/TD] +[TD]Seeds media gallery comments[/TD] [/TR] [TR] [TD][ICODE]tck-seeder:seed-conversation-message[/ICODE][/TD] [TD]Seeds conversation messages[/TD] [/TR] [TR] -[TD][ICODE]tck-seeder:seed-post[/ICODE][/TD] -[TD]Seeds posts[/TD] +[TD][ICODE]tck-seeder:seed-ip-address-ban[/ICODE][/TD] +[TD]Seeds ip address bans[/TD] [/TR] [TR] -[TD][ICODE]tck-seeder:seed-profile-post[/ICODE][/TD] -[TD]Seeds profile posts[/TD] +[TD][ICODE]tck-seeder:seed-media-gallery-category[/ICODE][/TD] +[TD]Seeds media gallery categories[/TD] [/TR] [TR] -[TD][ICODE]tck-seeder:seed-category[/ICODE][/TD] -[TD]Seeds categories[/TD] +[TD][ICODE]tck-seeder:seed-forum[/ICODE][/TD] +[TD]Seeds forums[/TD] [/TR] [TR] -[TD][ICODE]tck-seeder:seed-media-gallery-item[/ICODE][/TD] -[TD]Seeds media gallery media items[/TD] +[TD][ICODE]tck-seeder:seed-user-ban[/ICODE][/TD] +[TD]Seeds user bans[/TD] [/TR] [TR] -[TD][ICODE]tck-seeder:seed-resource-manager-category[/ICODE][/TD] -[TD]Seeds resource manager categories[/TD] +[TD][ICODE]tck-seeder:seed-user[/ICODE][/TD] +[TD]Seeds users[/TD] [/TR] [TR] -[TD][ICODE]tck-seeder:seed-resource-manager-item[/ICODE][/TD] -[TD]Seeds resource manager items[/TD] +[TD][ICODE]tck-seeder:seed-discouraged-ip-address[/ICODE][/TD] +[TD]Seeds discouraged ip addresses[/TD] [/TR] [TR] -[TD][ICODE]tck-seeder:seed-profile-post-comment-reaction[/ICODE][/TD] -[TD]Seeds profile post comment reactions[/TD] +[TD][ICODE]tck-seeder:seed-conversation-message-threadmark[/ICODE][/TD] +[TD]Seeds conversation message threadmarks[/TD] +[/TR] +[TR] +[TD][ICODE]tck-seeder:seed-email-bounce-log[/ICODE][/TD] +[TD]Seeds email bounce logs[/TD] +[/TR] +[TR] +[TD][ICODE]tck-seeder:seed-profile-post-comment[/ICODE][/TD] +[TD]Seeds profile post comments[/TD] +[/TR] +[TR] +[TD][ICODE]tck-seeder:seed-resource-manager-item[/ICODE][/TD] +[TD]Seeds resource manager items[/TD] [/TR] [TR] [TD][ICODE]tck-seeder:seed-media-gallery-album-reaction[/ICODE][/TD] [TD]Seeds media gallery album reactions[/TD] [/TR] +[TR] +[TD][ICODE]tck-seeder:seed-profile-post[/ICODE][/TD] +[TD]Seeds profile posts[/TD] +[/TR] +[TR] +[TD][ICODE]tck-seeder:seed-resource-manager-category[/ICODE][/TD] +[TD]Seeds resource manager categories[/TD] +[/TR] +[TR] +[TD][ICODE]tck-seeder:seed-threadmark-category[/ICODE][/TD] +[TD]Seeds threadmark categories[/TD] +[/TR] +[TR] +[TD][ICODE]tck-seeder:seed-profile-post-reaction[/ICODE][/TD] +[TD]Seeds profile post reactions[/TD] +[/TR] [/TABLE] [HEADING=1]License[/HEADING] This project is licensed under the MIT License - see the [URL='https://github.com/ticktackk/SeederForXF2/blob/master/LICENSE.md']LICENSE.md[/URL] file for details. \ No newline at end of file