Image to Post - random

This commit is contained in:
Matthew Barbour 2020-10-26 10:17:15 -05:00
parent bfe95a09e7
commit 0db32f2ccc
4 changed files with 18 additions and 18 deletions

View File

@ -5,22 +5,22 @@ class RandomImageInfo extends ExtensionInfo
public const KEY = "random_image"; public const KEY = "random_image";
public $key = self::KEY; public $key = self::KEY;
public $name = "Random Image"; public $name = "Random Post";
public $url = self::SHIMMIE_URL; public $url = self::SHIMMIE_URL;
public $authors = self::SHISH_AUTHOR; public $authors = self::SHISH_AUTHOR;
public $license = self::LICENSE_GPLV2; public $license = self::LICENSE_GPLV2;
public $description = "Do things with a random image"; public $description = "Do things with a random post";
public $documentation = public $documentation =
"<b>Viewing a random image</b> "<b>Viewing a random post</b>
<br>Visit <code>/random_image/view</code> <br>Visit <code>/random_image/view</code>
<p><b>Downloading a random image</b> <p><b>Downloading a random post</b>
<br>Link to <code>/random_image/download</code>. This will give <br>Link to <code>/random_image/download</code>. This will give
the raw data for an image (no HTML). This is useful so that you the raw data for a post (no HTML). This is useful so that you
can set your desktop wallpaper to be the download URL, refreshed can set your desktop wallpaper to be the download URL, refreshed
every couple of hours. every couple of hours.
<p><b>Getting a random image from a subset</b> <p><b>Getting a random post from a subset</b>
<br>Adding a slash and some search terms will get a random image <br>Adding a slash and some search terms will get a random post
from those results. This can be useful if you want a specific size from those results. This can be useful if you want a specific size
of random image, or from a category. You could link to of random post, or from a category. You could link to
<code>/random_image/download/size=1024x768+cute</code>"; <code>/random_image/download/size=1024x768+cute</code>";
} }

View File

@ -22,7 +22,7 @@ class RandomImage extends Extension
$image = Image::by_random($search_terms); $image = Image::by_random($search_terms);
if (!$image) { if (!$image) {
throw new SCoreException( throw new SCoreException(
"Couldn't find any images randomly", "Couldn't find any posts randomly",
Tag::implode($search_terms) Tag::implode($search_terms)
); );
} }
@ -43,7 +43,7 @@ class RandomImage extends Extension
public function onSetupBuilding(SetupBuildingEvent $event) public function onSetupBuilding(SetupBuildingEvent $event)
{ {
$sb = new SetupBlock("Random Image"); $sb = new SetupBlock("Random Post");
$sb->add_bool_option("show_random_block", "Show Random Block: "); $sb->add_bool_option("show_random_block", "Show Random Block: ");
$event->panel->add_block($sb); $event->panel->add_block($sb);
} }
@ -62,7 +62,7 @@ class RandomImage extends Extension
public function onPageSubNavBuilding(PageSubNavBuildingEvent $event) public function onPageSubNavBuilding(PageSubNavBuildingEvent $event)
{ {
if ($event->parent=="posts") { if ($event->parent=="posts") {
$event->add_nav_link("posts_random", new Link('random_image/view'), "Random Image"); $event->add_nav_link("posts_random", new Link('random_image/view'), "Random Post");
} }
} }
} }

View File

@ -8,10 +8,10 @@ class RandomImageTest extends ShimmiePHPUnitTestCase
$this->log_out(); $this->log_out();
$page = $this->get_page("random_image/view"); $page = $this->get_page("random_image/view");
$this->assertEquals("Image $image_id: test", $page->title); $this->assertEquals("Post $image_id: test", $page->title);
$page = $this->get_page("random_image/view/test"); $page = $this->get_page("random_image/view/test");
$this->assertEquals("Image $image_id: test", $page->title); $this->assertEquals("Post $image_id: test", $page->title);
$page = $this->get_page("random_image/download"); $page = $this->get_page("random_image/download");
$this->assertNotNull($page->data); $this->assertNotNull($page->data);
@ -27,21 +27,21 @@ class RandomImageTest extends ShimmiePHPUnitTestCase
# enabled, no image = no text # enabled, no image = no text
$config->set_bool("show_random_block", true); $config->set_bool("show_random_block", true);
$page = $this->get_page("post/list"); $page = $this->get_page("post/list");
$this->assertNull($page->find_block("Random Image")); $this->assertNull($page->find_block("Random Post"));
# enabled, image = text # enabled, image = text
$image_id = $this->post_image("tests/pbx_screenshot.jpg", "test"); $image_id = $this->post_image("tests/pbx_screenshot.jpg", "test");
$page = $this->get_page("post/list"); $page = $this->get_page("post/list");
$this->assertNotNull($page->find_block("Random Image")); $this->assertNotNull($page->find_block("Random Post"));
# disabled, image = no text # disabled, image = no text
$config->set_bool("show_random_block", false); $config->set_bool("show_random_block", false);
$page = $this->get_page("post/list"); $page = $this->get_page("post/list");
$this->assertNull($page->find_block("Random Image")); $this->assertNull($page->find_block("Random Post"));
# disabled, no image = no image # disabled, no image = no image
$this->delete_image($image_id); $this->delete_image($image_id);
$page = $this->get_page("post/list"); $page = $this->get_page("post/list");
$this->assertNull($page->find_block("Random Image")); $this->assertNull($page->find_block("Random Post"));
} }
} }

View File

@ -7,7 +7,7 @@ class RandomImageTheme extends Themelet
{ {
public function display_random(Page $page, Image $image) public function display_random(Page $page, Image $image)
{ {
$page->add_block(new Block("Random Image", $this->build_random_html($image), "left", 8)); $page->add_block(new Block("Random Post", $this->build_random_html($image), "left", 8));
} }
public function build_random_html(Image $image, ?string $query = null): string public function build_random_html(Image $image, ?string $query = null): string