mirror of
https://github.com/wallabag/wallabag.git
synced 2025-01-22 22:58:08 +00:00
CS
This commit is contained in:
parent
399bd777d7
commit
4346a86068
31 changed files with 204 additions and 163 deletions
|
@ -47,6 +47,7 @@ class WallabagRestController extends Controller
|
|||
* {"name"="username", "dataType"="string", "required"=true, "description"="username"}
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getSaltAction($username)
|
||||
|
@ -77,6 +78,7 @@ class WallabagRestController extends Controller
|
|||
* {"name"="tags", "dataType"="string", "required"=false, "format"="api%2Crest", "description"="a list of tags url encoded. Will returns entries that matches ALL tags."},
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return Entry
|
||||
*/
|
||||
public function getEntriesAction(Request $request)
|
||||
|
@ -109,13 +111,14 @@ class WallabagRestController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Retrieve a single entry
|
||||
* Retrieve a single entry.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* requirements={
|
||||
* {"name"="entry", "dataType"="integer", "requirement"="\w+", "description"="The entry ID"}
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return Entry
|
||||
*/
|
||||
public function getEntryAction(Entry $entry)
|
||||
|
@ -128,7 +131,7 @@ class WallabagRestController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Create an entry
|
||||
* Create an entry.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* parameters={
|
||||
|
@ -137,6 +140,7 @@ class WallabagRestController extends Controller
|
|||
* {"name"="tags", "dataType"="string", "required"=false, "format"="tag1,tag2,tag3", "description"="a comma-separated list of tags."},
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return Entry
|
||||
*/
|
||||
public function postEntriesAction(Request $request)
|
||||
|
@ -164,7 +168,7 @@ class WallabagRestController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Change several properties of an entry
|
||||
* Change several properties of an entry.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* requirements={
|
||||
|
@ -177,15 +181,16 @@ class WallabagRestController extends Controller
|
|||
* {"name"="star", "dataType"="boolean", "required"=false, "format"="true or false", "description"="starred the entry."},
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return Entry
|
||||
*/
|
||||
public function patchEntriesAction(Entry $entry, Request $request)
|
||||
{
|
||||
$this->validateUserAccess($entry->getUser()->getId(), $this->getUser()->getId());
|
||||
|
||||
$title = $request->request->get("title");
|
||||
$isArchived = $request->request->get("archive");
|
||||
$isStarred = $request->request->get("star");
|
||||
$title = $request->request->get('title');
|
||||
$isArchived = $request->request->get('archive');
|
||||
$isStarred = $request->request->get('star');
|
||||
|
||||
if (!is_null($title)) {
|
||||
$entry->setTitle($title);
|
||||
|
@ -213,13 +218,14 @@ class WallabagRestController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Delete **permanently** an entry
|
||||
* Delete **permanently** an entry.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* requirements={
|
||||
* {"name"="entry", "dataType"="integer", "requirement"="\w+", "description"="The entry ID"}
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return Entry
|
||||
*/
|
||||
public function deleteEntriesAction(Entry $entry)
|
||||
|
@ -236,7 +242,7 @@ class WallabagRestController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Retrieve all tags for an entry
|
||||
* Retrieve all tags for an entry.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* requirements={
|
||||
|
@ -254,7 +260,7 @@ class WallabagRestController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Add one or more tags to an entry
|
||||
* Add one or more tags to an entry.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* requirements={
|
||||
|
@ -284,7 +290,7 @@ class WallabagRestController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Permanently remove one tag for an entry
|
||||
* Permanently remove one tag for an entry.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* requirements={
|
||||
|
@ -308,7 +314,7 @@ class WallabagRestController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Retrieve all tags
|
||||
* Retrieve all tags.
|
||||
*
|
||||
* @ApiDoc()
|
||||
*/
|
||||
|
@ -320,7 +326,7 @@ class WallabagRestController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Permanently remove one tag from **every** entry
|
||||
* Permanently remove one tag from **every** entry.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* requirements={
|
||||
|
@ -343,10 +349,10 @@ class WallabagRestController extends Controller
|
|||
|
||||
/**
|
||||
* Validate that the first id is equal to the second one.
|
||||
* If not, throw exception. It means a user try to access information from an other user
|
||||
* If not, throw exception. It means a user try to access information from an other user.
|
||||
*
|
||||
* @param integer $requestUserId User id from the requested source
|
||||
* @param integer $currentUserId User id from the retrieved source
|
||||
* @param int $requestUserId User id from the requested source
|
||||
* @param int $currentUserId User id from the retrieved source
|
||||
*/
|
||||
private function validateUserAccess($requestUserId, $currentUserId)
|
||||
{
|
||||
|
@ -357,7 +363,7 @@ class WallabagRestController extends Controller
|
|||
|
||||
/**
|
||||
* Send a JSON Response.
|
||||
* We don't use the Symfony JsonRespone, because it takes an array as parameter instead of a JSON string
|
||||
* We don't use the Symfony JsonRespone, because it takes an array as parameter instead of a JSON string.
|
||||
*
|
||||
* @param string $json
|
||||
*
|
||||
|
|
|
@ -6,7 +6,7 @@ use Symfony\Component\Config\Definition\Builder\TreeBuilder;
|
|||
use Symfony\Component\Config\Definition\ConfigurationInterface;
|
||||
|
||||
/**
|
||||
* This is the class that validates and merges configuration from your app/config files
|
||||
* This is the class that validates and merges configuration from your app/config files.
|
||||
*
|
||||
* To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/extension.html#cookbook-bundles-extension-config-class}
|
||||
*/
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?php
|
||||
|
||||
namespace Wallabag\ApiBundle\Security\Authentication\Provider;
|
||||
|
||||
use Symfony\Component\Security\Core\Authentication\Provider\AuthenticationProviderInterface;
|
||||
|
@ -29,7 +30,7 @@ class WsseProvider implements AuthenticationProviderInterface
|
|||
$user = $this->userProvider->loadUserByUsername($token->getUsername());
|
||||
|
||||
if (!$user) {
|
||||
throw new AuthenticationException("Bad credentials. Did you forgot your username?");
|
||||
throw new AuthenticationException('Bad credentials. Did you forgot your username?');
|
||||
}
|
||||
|
||||
if ($user && $this->validateDigest($token->digest, $token->nonce, $token->created, $user->getPassword())) {
|
||||
|
@ -46,12 +47,12 @@ class WsseProvider implements AuthenticationProviderInterface
|
|||
{
|
||||
// Check created time is not in the future
|
||||
if (strtotime($created) > time()) {
|
||||
throw new AuthenticationException("Back to the future...");
|
||||
throw new AuthenticationException('Back to the future...');
|
||||
}
|
||||
|
||||
// Expire timestamp after 5 minutes
|
||||
if (time() - strtotime($created) > 300) {
|
||||
throw new AuthenticationException("Too late for this timestamp... Watch your watch.");
|
||||
throw new AuthenticationException('Too late for this timestamp... Watch your watch.');
|
||||
}
|
||||
|
||||
// Validate nonce is unique within 5 minutes
|
||||
|
@ -65,7 +66,7 @@ class WsseProvider implements AuthenticationProviderInterface
|
|||
$expected = base64_encode(sha1(base64_decode($nonce).$created.$secret, true));
|
||||
|
||||
if ($digest !== $expected) {
|
||||
throw new AuthenticationException("Bad credentials ! Digest is not as expected.");
|
||||
throw new AuthenticationException('Bad credentials ! Digest is not as expected.');
|
||||
}
|
||||
|
||||
return $digest === $expected;
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?php
|
||||
|
||||
namespace Wallabag\ApiBundle\Security\Authentication\Token;
|
||||
|
||||
use Symfony\Component\Security\Core\Authentication\Token\AbstractToken;
|
||||
|
|
|
@ -9,7 +9,7 @@ class WallabagRestControllerTest extends WebTestCase
|
|||
protected static $salt;
|
||||
|
||||
/**
|
||||
* Grab the salt once and store it to be available for all tests
|
||||
* Grab the salt once and store it to be available for all tests.
|
||||
*/
|
||||
public static function setUpBeforeClass()
|
||||
{
|
||||
|
@ -24,7 +24,7 @@ class WallabagRestControllerTest extends WebTestCase
|
|||
}
|
||||
|
||||
/**
|
||||
* Generate HTTP headers for authenticate user on API
|
||||
* Generate HTTP headers for authenticate user on API.
|
||||
*
|
||||
* @param string $username
|
||||
* @param string $password
|
||||
|
@ -327,7 +327,7 @@ class WallabagRestControllerTest extends WebTestCase
|
|||
$content = json_decode($client->getResponse()->getContent(), true);
|
||||
|
||||
$this->assertArrayHasKey('tags', $content);
|
||||
$this->assertEquals($nbTags+3, count($content['tags']));
|
||||
$this->assertEquals($nbTags + 3, count($content['tags']));
|
||||
|
||||
$entryDB = $client->getContainer()
|
||||
->get('doctrine.orm.entity_manager')
|
||||
|
@ -369,7 +369,7 @@ class WallabagRestControllerTest extends WebTestCase
|
|||
$content = json_decode($client->getResponse()->getContent(), true);
|
||||
|
||||
$this->assertArrayHasKey('tags', $content);
|
||||
$this->assertEquals($nbTags-1, count($content['tags']));
|
||||
$this->assertEquals($nbTags - 1, count($content['tags']));
|
||||
}
|
||||
|
||||
public function testGetUserTags()
|
||||
|
|
|
@ -225,7 +225,7 @@ class InstallCommand extends ContainerAwareCommand
|
|||
}
|
||||
|
||||
/**
|
||||
* Run a command
|
||||
* Run a command.
|
||||
*
|
||||
* @param string $command
|
||||
* @param array $parameters Parameters to this command (usually 'force' => true)
|
||||
|
@ -266,9 +266,9 @@ class InstallCommand extends ContainerAwareCommand
|
|||
}
|
||||
|
||||
/**
|
||||
* Check if the database already exists
|
||||
* Check if the database already exists.
|
||||
*
|
||||
* @return boolean
|
||||
* @return bool
|
||||
*/
|
||||
private function isDatabasePresent()
|
||||
{
|
||||
|
@ -300,9 +300,9 @@ class InstallCommand extends ContainerAwareCommand
|
|||
|
||||
/**
|
||||
* Check if the schema is already created.
|
||||
* If we found at least oen table, it means the schema exists
|
||||
* If we found at least oen table, it means the schema exists.
|
||||
*
|
||||
* @return boolean
|
||||
* @return bool
|
||||
*/
|
||||
private function isSchemaPresent()
|
||||
{
|
||||
|
|
|
@ -50,7 +50,7 @@ class EntryController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Shows unread entries for current user
|
||||
* Shows unread entries for current user.
|
||||
*
|
||||
* @Route("/unread", name="unread")
|
||||
*
|
||||
|
@ -70,7 +70,7 @@ class EntryController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Shows read entries for current user
|
||||
* Shows read entries for current user.
|
||||
*
|
||||
* @Route("/archive", name="archive")
|
||||
*
|
||||
|
@ -90,7 +90,7 @@ class EntryController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Shows starred entries for current user
|
||||
* Shows starred entries for current user.
|
||||
*
|
||||
* @Route("/starred", name="starred")
|
||||
*
|
||||
|
@ -110,7 +110,7 @@ class EntryController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Shows entry content
|
||||
* Shows entry content.
|
||||
*
|
||||
* @param Entry $entry
|
||||
*
|
||||
|
@ -129,7 +129,7 @@ class EntryController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Changes read status for an entry
|
||||
* Changes read status for an entry.
|
||||
*
|
||||
* @param Request $request
|
||||
* @param Entry $entry
|
||||
|
@ -154,7 +154,7 @@ class EntryController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Changes favorite status for an entry
|
||||
* Changes favorite status for an entry.
|
||||
*
|
||||
* @param Request $request
|
||||
* @param Entry $entry
|
||||
|
@ -179,7 +179,7 @@ class EntryController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Deletes entry
|
||||
* Deletes entry.
|
||||
*
|
||||
* @param Request $request
|
||||
* @param Entry $entry
|
||||
|
@ -205,7 +205,7 @@ class EntryController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Check if the logged user can manage the given entry
|
||||
* Check if the logged user can manage the given entry.
|
||||
*
|
||||
* @param Entry $entry
|
||||
*/
|
||||
|
|
|
@ -11,7 +11,7 @@ use Wallabag\CoreBundle\Entity\Entry;
|
|||
class RssController extends Controller
|
||||
{
|
||||
/**
|
||||
* Shows unread entries for current user
|
||||
* Shows unread entries for current user.
|
||||
*
|
||||
* @Route("/{username}/{token}/unread.xml", name="unread_rss", defaults={"_format"="xml"})
|
||||
* @ParamConverter("user", class="WallabagCoreBundle:User", converter="username_rsstoken_converter")
|
||||
|
@ -35,7 +35,7 @@ class RssController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Shows read entries for current user
|
||||
* Shows read entries for current user.
|
||||
*
|
||||
* @Route("/{username}/{token}/archive.xml", name="archive_rss")
|
||||
* @ParamConverter("user", class="WallabagCoreBundle:User", converter="username_rsstoken_converter")
|
||||
|
@ -59,7 +59,7 @@ class RssController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Shows starred entries for current user
|
||||
* Shows starred entries for current user.
|
||||
*
|
||||
* @Route("/{username}/{token}/starred.xml", name="starred_rss")
|
||||
* @ParamConverter("user", class="WallabagCoreBundle:User", converter="username_rsstoken_converter")
|
||||
|
|
|
@ -30,9 +30,10 @@ class SecurityController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Request forgot password: show form
|
||||
* Request forgot password: show form.
|
||||
*
|
||||
* @Route("/forgot-password", name="forgot_password")
|
||||
*
|
||||
* @Method({"GET", "POST"})
|
||||
*/
|
||||
public function forgotPasswordAction(Request $request)
|
||||
|
@ -73,9 +74,10 @@ class SecurityController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Tell the user to check his email provider
|
||||
* Tell the user to check his email provider.
|
||||
*
|
||||
* @Route("/forgot-password/check-email", name="forgot_password_check_email")
|
||||
*
|
||||
* @Method({"GET"})
|
||||
*/
|
||||
public function checkEmailAction(Request $request)
|
||||
|
@ -93,9 +95,10 @@ class SecurityController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Reset user password
|
||||
* Reset user password.
|
||||
*
|
||||
* @Route("/forgot-password/{token}", name="forgot_password_reset")
|
||||
*
|
||||
* @Method({"GET", "POST"})
|
||||
*/
|
||||
public function resetAction(Request $request, $token)
|
||||
|
|
|
@ -39,9 +39,9 @@ class LoadEntryData extends AbstractFixture implements OrderedFixtureInterface
|
|||
$entry3->setContent('This is my content /o/');
|
||||
|
||||
$tag1 = new Tag($this->getReference('bob-user'));
|
||||
$tag1->setLabel("foo");
|
||||
$tag1->setLabel('foo');
|
||||
$tag2 = new Tag($this->getReference('bob-user'));
|
||||
$tag2->setLabel("bar");
|
||||
$tag2->setLabel('bar');
|
||||
|
||||
$entry3->addTag($tag1);
|
||||
$entry3->addTag($tag2);
|
||||
|
@ -56,9 +56,9 @@ class LoadEntryData extends AbstractFixture implements OrderedFixtureInterface
|
|||
$entry4->setContent('This is my content /o/');
|
||||
|
||||
$tag1 = new Tag($this->getReference('admin-user'));
|
||||
$tag1->setLabel("foo");
|
||||
$tag1->setLabel('foo');
|
||||
$tag2 = new Tag($this->getReference('admin-user'));
|
||||
$tag2->setLabel("bar");
|
||||
$tag2->setLabel('bar');
|
||||
|
||||
$entry4->addTag($tag1);
|
||||
$entry4->addTag($tag2);
|
||||
|
|
|
@ -25,7 +25,7 @@ class PrefixedNamingStrategy implements NamingStrategy
|
|||
*/
|
||||
public function classToTableName($className)
|
||||
{
|
||||
return strtolower($this->prefix . substr($className, strrpos($className, '\\') + 1));
|
||||
return strtolower($this->prefix.substr($className, strrpos($className, '\\') + 1));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -49,7 +49,7 @@ class PrefixedNamingStrategy implements NamingStrategy
|
|||
*/
|
||||
public function joinColumnName($propertyName)
|
||||
{
|
||||
return $propertyName . '_' . $this->referenceColumnName();
|
||||
return $propertyName.'_'.$this->referenceColumnName();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -62,7 +62,7 @@ class PrefixedNamingStrategy implements NamingStrategy
|
|||
// ie: not "wallabag_entry_wallabag_tag" but "wallabag_entry_tag"
|
||||
$target = substr($targetEntity, strrpos($targetEntity, '\\') + 1);
|
||||
|
||||
return strtolower($this->classToTableName($sourceEntity) . '_' .$target);
|
||||
return strtolower($this->classToTableName($sourceEntity).'_'.$target);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -70,7 +70,7 @@ class PrefixedNamingStrategy implements NamingStrategy
|
|||
*/
|
||||
public function joinKeyColumnName($entityName, $referencedColumnName = null)
|
||||
{
|
||||
return strtolower($this->classToTableName($entityName) . '_' .($referencedColumnName ?: $this->referenceColumnName()));
|
||||
return strtolower($this->classToTableName($entityName).'_'.($referencedColumnName ?: $this->referenceColumnName()));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -6,7 +6,7 @@ use Doctrine\ORM\Mapping as ORM;
|
|||
use Symfony\Component\Validator\Constraints as Assert;
|
||||
|
||||
/**
|
||||
* Config
|
||||
* Config.
|
||||
*
|
||||
* @ORM\Entity(repositoryClass="Wallabag\CoreBundle\Repository\ConfigRepository")
|
||||
* @ORM\Table
|
||||
|
@ -15,7 +15,7 @@ use Symfony\Component\Validator\Constraints as Assert;
|
|||
class Config
|
||||
{
|
||||
/**
|
||||
* @var integer
|
||||
* @var int
|
||||
*
|
||||
* @ORM\Column(name="id", type="integer")
|
||||
* @ORM\Id
|
||||
|
@ -32,7 +32,7 @@ class Config
|
|||
private $theme;
|
||||
|
||||
/**
|
||||
* @var integer
|
||||
* @var int
|
||||
*
|
||||
* @Assert\NotBlank()
|
||||
* @Assert\Range(
|
||||
|
@ -60,7 +60,7 @@ class Config
|
|||
private $rssToken;
|
||||
|
||||
/**
|
||||
* @var integer
|
||||
* @var int
|
||||
*
|
||||
* @ORM\Column(name="rss_limit", type="integer", nullable=true)
|
||||
* @Assert\Range(
|
||||
|
@ -85,9 +85,9 @@ class Config
|
|||
}
|
||||
|
||||
/**
|
||||
* Get id
|
||||
* Get id.
|
||||
*
|
||||
* @return integer
|
||||
* @return int
|
||||
*/
|
||||
public function getId()
|
||||
{
|
||||
|
@ -95,9 +95,10 @@ class Config
|
|||
}
|
||||
|
||||
/**
|
||||
* Set theme
|
||||
* Set theme.
|
||||
*
|
||||
* @param string $theme
|
||||
*
|
||||
* @param string $theme
|
||||
* @return Config
|
||||
*/
|
||||
public function setTheme($theme)
|
||||
|
@ -108,7 +109,7 @@ class Config
|
|||
}
|
||||
|
||||
/**
|
||||
* Get theme
|
||||
* Get theme.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
|
@ -118,9 +119,10 @@ class Config
|
|||
}
|
||||
|
||||
/**
|
||||
* Set itemsPerPage
|
||||
* Set itemsPerPage.
|
||||
*
|
||||
* @param int $itemsPerPage
|
||||
*
|
||||
* @param integer $itemsPerPage
|
||||
* @return Config
|
||||
*/
|
||||
public function setItemsPerPage($itemsPerPage)
|
||||
|
@ -131,9 +133,9 @@ class Config
|
|||
}
|
||||
|
||||
/**
|
||||
* Get itemsPerPage
|
||||
* Get itemsPerPage.
|
||||
*
|
||||
* @return integer
|
||||
* @return int
|
||||
*/
|
||||
public function getItemsPerPage()
|
||||
{
|
||||
|
@ -141,9 +143,10 @@ class Config
|
|||
}
|
||||
|
||||
/**
|
||||
* Set language
|
||||
* Set language.
|
||||
*
|
||||
* @param string $language
|
||||
*
|
||||
* @param string $language
|
||||
* @return Config
|
||||
*/
|
||||
public function setLanguage($language)
|
||||
|
@ -154,7 +157,7 @@ class Config
|
|||
}
|
||||
|
||||
/**
|
||||
* Get language
|
||||
* Get language.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
|
@ -164,9 +167,10 @@ class Config
|
|||
}
|
||||
|
||||
/**
|
||||
* Set user
|
||||
* Set user.
|
||||
*
|
||||
* @param \Wallabag\CoreBundle\Entity\User $user
|
||||
*
|
||||
* @param \Wallabag\CoreBundle\Entity\User $user
|
||||
* @return Config
|
||||
*/
|
||||
public function setUser(\Wallabag\CoreBundle\Entity\User $user = null)
|
||||
|
@ -177,7 +181,7 @@ class Config
|
|||
}
|
||||
|
||||
/**
|
||||
* Get user
|
||||
* Get user.
|
||||
*
|
||||
* @return \Wallabag\CoreBundle\Entity\User
|
||||
*/
|
||||
|
@ -187,9 +191,10 @@ class Config
|
|||
}
|
||||
|
||||
/**
|
||||
* Set rssToken
|
||||
* Set rssToken.
|
||||
*
|
||||
* @param string $rssToken
|
||||
*
|
||||
* @param string $rssToken
|
||||
* @return Config
|
||||
*/
|
||||
public function setRssToken($rssToken)
|
||||
|
@ -200,7 +205,7 @@ class Config
|
|||
}
|
||||
|
||||
/**
|
||||
* Get rssToken
|
||||
* Get rssToken.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
|
@ -210,9 +215,10 @@ class Config
|
|||
}
|
||||
|
||||
/**
|
||||
* Set rssLimit
|
||||
* Set rssLimit.
|
||||
*
|
||||
* @param string $rssLimit
|
||||
*
|
||||
* @param string $rssLimit
|
||||
* @return Config
|
||||
*/
|
||||
public function setRssLimit($rssLimit)
|
||||
|
@ -223,7 +229,7 @@ class Config
|
|||
}
|
||||
|
||||
/**
|
||||
* Get rssLimit
|
||||
* Get rssLimit.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
|
|
|
@ -9,7 +9,7 @@ use Hateoas\Configuration\Annotation as Hateoas;
|
|||
use JMS\Serializer\Annotation\XmlRoot;
|
||||
|
||||
/**
|
||||
* Entry
|
||||
* Entry.
|
||||
*
|
||||
* @XmlRoot("entry")
|
||||
* @ORM\Entity(repositoryClass="Wallabag\CoreBundle\Repository\EntryRepository")
|
||||
|
@ -21,7 +21,7 @@ class Entry
|
|||
{
|
||||
/** @Serializer\XmlAttribute */
|
||||
/**
|
||||
* @var integer
|
||||
* @var int
|
||||
*
|
||||
* @ORM\Column(name="id", type="integer")
|
||||
* @ORM\Id
|
||||
|
@ -45,14 +45,14 @@ class Entry
|
|||
private $url;
|
||||
|
||||
/**
|
||||
* @var boolean
|
||||
* @var bool
|
||||
*
|
||||
* @ORM\Column(name="is_archived", type="boolean")
|
||||
*/
|
||||
private $isArchived = false;
|
||||
|
||||
/**
|
||||
* @var boolean
|
||||
* @var bool
|
||||
*
|
||||
* @ORM\Column(name="is_starred", type="boolean")
|
||||
*/
|
||||
|
@ -94,7 +94,7 @@ class Entry
|
|||
private $mimetype;
|
||||
|
||||
/**
|
||||
* @var integer
|
||||
* @var int
|
||||
*
|
||||
* @ORM\Column(name="reading_type", type="integer", nullable=true)
|
||||
*/
|
||||
|
@ -108,7 +108,7 @@ class Entry
|
|||
private $domainName;
|
||||
|
||||
/**
|
||||
* @var boolean
|
||||
* @var bool
|
||||
*
|
||||
* @ORM\Column(name="is_public", type="boolean", nullable=true, options={"default" = false})
|
||||
*/
|
||||
|
@ -135,9 +135,9 @@ class Entry
|
|||
}
|
||||
|
||||
/**
|
||||
* Get id
|
||||
* Get id.
|
||||
*
|
||||
* @return integer
|
||||
* @return int
|
||||
*/
|
||||
public function getId()
|
||||
{
|
||||
|
@ -145,9 +145,10 @@ class Entry
|
|||
}
|
||||
|
||||
/**
|
||||
* Set title
|
||||
* Set title.
|
||||
*
|
||||
* @param string $title
|
||||
*
|
||||
* @param string $title
|
||||
* @return Entry
|
||||
*/
|
||||
public function setTitle($title)
|
||||
|
@ -158,7 +159,7 @@ class Entry
|
|||
}
|
||||
|
||||
/**
|
||||
* Get title
|
||||
* Get title.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
|
@ -168,9 +169,10 @@ class Entry
|
|||
}
|
||||
|
||||
/**
|
||||
* Set url
|
||||
* Set url.
|
||||
*
|
||||
* @param string $url
|
||||
*
|
||||
* @param string $url
|
||||
* @return Entry
|
||||
*/
|
||||
public function setUrl($url)
|
||||
|
@ -181,7 +183,7 @@ class Entry
|
|||
}
|
||||
|
||||
/**
|
||||
* Get url
|
||||
* Get url.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
|
@ -191,9 +193,10 @@ class Entry
|
|||
}
|
||||
|
||||
/**
|
||||
* Set isArchived
|
||||
* Set isArchived.
|
||||
*
|
||||
* @param string $isArchived
|
||||
*
|
||||
* @param string $isArchived
|
||||
* @return Entry
|
||||
*/
|
||||
public function setArchived($isArchived)
|
||||
|
@ -204,7 +207,7 @@ class Entry
|
|||
}
|
||||
|
||||
/**
|
||||
* Get isArchived
|
||||
* Get isArchived.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
|
@ -221,9 +224,10 @@ class Entry
|
|||
}
|
||||
|
||||
/**
|
||||
* Set isStarred
|
||||
* Set isStarred.
|
||||
*
|
||||
* @param string $isStarred
|
||||
*
|
||||
* @param string $isStarred
|
||||
* @return Entry
|
||||
*/
|
||||
public function setStarred($isStarred)
|
||||
|
@ -234,7 +238,7 @@ class Entry
|
|||
}
|
||||
|
||||
/**
|
||||
* Get isStarred
|
||||
* Get isStarred.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
|
@ -251,9 +255,10 @@ class Entry
|
|||
}
|
||||
|
||||
/**
|
||||
* Set content
|
||||
* Set content.
|
||||
*
|
||||
* @param string $content
|
||||
*
|
||||
* @param string $content
|
||||
* @return Entry
|
||||
*/
|
||||
public function setContent($content)
|
||||
|
@ -264,7 +269,7 @@ class Entry
|
|||
}
|
||||
|
||||
/**
|
||||
* Get content
|
||||
* Get content.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
|
@ -375,7 +380,7 @@ class Entry
|
|||
}
|
||||
|
||||
/**
|
||||
* @return boolean
|
||||
* @return bool
|
||||
*/
|
||||
public function isPublic()
|
||||
{
|
||||
|
@ -383,7 +388,7 @@ class Entry
|
|||
}
|
||||
|
||||
/**
|
||||
* @param boolean $isPublic
|
||||
* @param bool $isPublic
|
||||
*/
|
||||
public function setPublic($isPublic)
|
||||
{
|
||||
|
|
|
@ -9,7 +9,7 @@ use JMS\Serializer\Annotation\Expose;
|
|||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
|
||||
/**
|
||||
* Tag
|
||||
* Tag.
|
||||
*
|
||||
* @XmlRoot("tag")
|
||||
* @ORM\Table
|
||||
|
@ -19,7 +19,7 @@ use Doctrine\Common\Collections\ArrayCollection;
|
|||
class Tag
|
||||
{
|
||||
/**
|
||||
* @var integer
|
||||
* @var int
|
||||
*
|
||||
* @Expose
|
||||
* @ORM\Column(name="id", type="integer")
|
||||
|
@ -52,9 +52,9 @@ class Tag
|
|||
$this->entries = new ArrayCollection();
|
||||
}
|
||||
/**
|
||||
* Get id
|
||||
* Get id.
|
||||
*
|
||||
* @return integer
|
||||
* @return int
|
||||
*/
|
||||
public function getId()
|
||||
{
|
||||
|
@ -62,9 +62,10 @@ class Tag
|
|||
}
|
||||
|
||||
/**
|
||||
* Set label
|
||||
* Set label.
|
||||
*
|
||||
* @param string $label
|
||||
*
|
||||
* @param string $label
|
||||
* @return Tag
|
||||
*/
|
||||
public function setLabel($label)
|
||||
|
@ -75,7 +76,7 @@ class Tag
|
|||
}
|
||||
|
||||
/**
|
||||
* Get label
|
||||
* Get label.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
|
|
|
@ -12,7 +12,7 @@ use JMS\Serializer\Annotation\ExclusionPolicy;
|
|||
use JMS\Serializer\Annotation\Expose;
|
||||
|
||||
/**
|
||||
* User
|
||||
* User.
|
||||
*
|
||||
* @ORM\Entity(repositoryClass="Wallabag\CoreBundle\Repository\UserRepository")
|
||||
* @ORM\Table
|
||||
|
@ -25,7 +25,7 @@ use JMS\Serializer\Annotation\Expose;
|
|||
class User implements AdvancedUserInterface, \Serializable
|
||||
{
|
||||
/**
|
||||
* @var integer
|
||||
* @var int
|
||||
*
|
||||
* @Expose
|
||||
* @ORM\Column(name="id", type="integer")
|
||||
|
@ -142,9 +142,9 @@ class User implements AdvancedUserInterface, \Serializable
|
|||
}
|
||||
|
||||
/**
|
||||
* Get id
|
||||
* Get id.
|
||||
*
|
||||
* @return integer
|
||||
* @return int
|
||||
*/
|
||||
public function getId()
|
||||
{
|
||||
|
@ -152,9 +152,10 @@ class User implements AdvancedUserInterface, \Serializable
|
|||
}
|
||||
|
||||
/**
|
||||
* Set username
|
||||
* Set username.
|
||||
*
|
||||
* @param string $username
|
||||
*
|
||||
* @param string $username
|
||||
* @return User
|
||||
*/
|
||||
public function setUsername($username)
|
||||
|
@ -165,7 +166,7 @@ class User implements AdvancedUserInterface, \Serializable
|
|||
}
|
||||
|
||||
/**
|
||||
* Get username
|
||||
* Get username.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
|
@ -191,9 +192,10 @@ class User implements AdvancedUserInterface, \Serializable
|
|||
}
|
||||
|
||||
/**
|
||||
* Set password
|
||||
* Set password.
|
||||
*
|
||||
* @param string $password
|
||||
*
|
||||
* @param string $password
|
||||
* @return User
|
||||
*/
|
||||
public function setPassword($password)
|
||||
|
@ -208,7 +210,7 @@ class User implements AdvancedUserInterface, \Serializable
|
|||
}
|
||||
|
||||
/**
|
||||
* Get password
|
||||
* Get password.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
|
@ -218,9 +220,10 @@ class User implements AdvancedUserInterface, \Serializable
|
|||
}
|
||||
|
||||
/**
|
||||
* Set name
|
||||
* Set name.
|
||||
*
|
||||
* @param string $name
|
||||
*
|
||||
* @param string $name
|
||||
* @return User
|
||||
*/
|
||||
public function setName($name)
|
||||
|
@ -231,7 +234,7 @@ class User implements AdvancedUserInterface, \Serializable
|
|||
}
|
||||
|
||||
/**
|
||||
* Get name
|
||||
* Get name.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
|
@ -241,9 +244,10 @@ class User implements AdvancedUserInterface, \Serializable
|
|||
}
|
||||
|
||||
/**
|
||||
* Set email
|
||||
* Set email.
|
||||
*
|
||||
* @param string $email
|
||||
*
|
||||
* @param string $email
|
||||
* @return User
|
||||
*/
|
||||
public function setEmail($email)
|
||||
|
@ -254,7 +258,7 @@ class User implements AdvancedUserInterface, \Serializable
|
|||
}
|
||||
|
||||
/**
|
||||
* Get email
|
||||
* Get email.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
|
@ -341,8 +345,7 @@ class User implements AdvancedUserInterface, \Serializable
|
|||
public function unserialize($serialized)
|
||||
{
|
||||
list(
|
||||
$this->id,
|
||||
) = unserialize($serialized);
|
||||
$this->id) = unserialize($serialized);
|
||||
}
|
||||
|
||||
public function isEqualTo(UserInterface $user)
|
||||
|
@ -370,9 +373,10 @@ class User implements AdvancedUserInterface, \Serializable
|
|||
return $this->isActive;
|
||||
}
|
||||
/**
|
||||
* Set config
|
||||
* Set config.
|
||||
*
|
||||
* @param \Wallabag\CoreBundle\Entity\Config $config
|
||||
*
|
||||
* @param \Wallabag\CoreBundle\Entity\Config $config
|
||||
* @return User
|
||||
*/
|
||||
public function setConfig(\Wallabag\CoreBundle\Entity\Config $config = null)
|
||||
|
@ -383,7 +387,7 @@ class User implements AdvancedUserInterface, \Serializable
|
|||
}
|
||||
|
||||
/**
|
||||
* Get config
|
||||
* Get config.
|
||||
*
|
||||
* @return \Wallabag\CoreBundle\Entity\Config
|
||||
*/
|
||||
|
@ -393,9 +397,10 @@ class User implements AdvancedUserInterface, \Serializable
|
|||
}
|
||||
|
||||
/**
|
||||
* Set confirmationToken
|
||||
* Set confirmationToken.
|
||||
*
|
||||
* @param string $confirmationToken
|
||||
*
|
||||
* @param string $confirmationToken
|
||||
* @return User
|
||||
*/
|
||||
public function setConfirmationToken($confirmationToken)
|
||||
|
@ -406,7 +411,7 @@ class User implements AdvancedUserInterface, \Serializable
|
|||
}
|
||||
|
||||
/**
|
||||
* Get confirmationToken
|
||||
* Get confirmationToken.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
|
@ -416,9 +421,10 @@ class User implements AdvancedUserInterface, \Serializable
|
|||
}
|
||||
|
||||
/**
|
||||
* Set passwordRequestedAt
|
||||
* Set passwordRequestedAt.
|
||||
*
|
||||
* @param \DateTime $passwordRequestedAt
|
||||
*
|
||||
* @param \DateTime $passwordRequestedAt
|
||||
* @return User
|
||||
*/
|
||||
public function setPasswordRequestedAt($passwordRequestedAt)
|
||||
|
@ -429,7 +435,7 @@ class User implements AdvancedUserInterface, \Serializable
|
|||
}
|
||||
|
||||
/**
|
||||
* Get passwordRequestedAt
|
||||
* Get passwordRequestedAt.
|
||||
*
|
||||
* @return \DateTime
|
||||
*/
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?php
|
||||
|
||||
namespace Wallabag\CoreBundle\Form\Type;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?php
|
||||
|
||||
namespace Wallabag\CoreBundle\Form\Type;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?php
|
||||
|
||||
namespace Wallabag\CoreBundle\Form\Type;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?php
|
||||
|
||||
namespace Wallabag\CoreBundle\Form\Type;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?php
|
||||
|
||||
namespace Wallabag\CoreBundle\Form\Type;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?php
|
||||
|
||||
namespace Wallabag\CoreBundle\Form\Type;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?php
|
||||
|
||||
namespace Wallabag\CoreBundle\Form\Type;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?php
|
||||
|
||||
namespace Wallabag\CoreBundle\Form\Type;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
|
|
|
@ -5,15 +5,16 @@ namespace Wallabag\CoreBundle\Helper;
|
|||
final class Tools
|
||||
{
|
||||
/**
|
||||
* Download a file (typically, for downloading pictures on web server)
|
||||
* Download a file (typically, for downloading pictures on web server).
|
||||
*
|
||||
* @param $url
|
||||
*
|
||||
* @return bool|mixed|string
|
||||
*/
|
||||
public static function getFile($url)
|
||||
{
|
||||
$timeout = 15;
|
||||
$useragent = "Mozilla/5.0 (Windows NT 5.1; rv:18.0) Gecko/20100101 Firefox/18.0";
|
||||
$useragent = 'Mozilla/5.0 (Windows NT 5.1; rv:18.0) Gecko/20100101 Firefox/18.0';
|
||||
|
||||
if (in_array('curl', get_loaded_extensions())) {
|
||||
# Fetch feed from URL
|
||||
|
@ -32,7 +33,7 @@ final class Tools
|
|||
|
||||
# FeedBurner requires a proper USER-AGENT...
|
||||
curl_setopt($curl, CURL_HTTP_VERSION_1_1, true);
|
||||
curl_setopt($curl, CURLOPT_ENCODING, "gzip, deflate");
|
||||
curl_setopt($curl, CURLOPT_ENCODING, 'gzip, deflate');
|
||||
curl_setopt($curl, CURLOPT_USERAGENT, $useragent);
|
||||
|
||||
$data = curl_exec($curl);
|
||||
|
@ -45,7 +46,7 @@ final class Tools
|
|||
array(
|
||||
'http' => array(
|
||||
'timeout' => $timeout,
|
||||
'header' => "User-Agent: ".$useragent,
|
||||
'header' => 'User-Agent: '.$useragent,
|
||||
'follow_location' => true,
|
||||
),
|
||||
'ssl' => array(
|
||||
|
@ -91,9 +92,10 @@ final class Tools
|
|||
}
|
||||
|
||||
/**
|
||||
* Encode a URL by using a salt
|
||||
* Encode a URL by using a salt.
|
||||
*
|
||||
* @param $string
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function encodeString($string)
|
||||
|
|
|
@ -10,7 +10,7 @@ use Pagerfanta\Pagerfanta;
|
|||
class EntryRepository extends EntityRepository
|
||||
{
|
||||
/**
|
||||
* Retrieves unread entries for a user
|
||||
* Retrieves unread entries for a user.
|
||||
*
|
||||
* @param int $userId
|
||||
* @param int $firstResult
|
||||
|
@ -35,7 +35,7 @@ class EntryRepository extends EntityRepository
|
|||
}
|
||||
|
||||
/**
|
||||
* Retrieves read entries for a user
|
||||
* Retrieves read entries for a user.
|
||||
*
|
||||
* @param int $userId
|
||||
* @param int $firstResult
|
||||
|
@ -61,7 +61,7 @@ class EntryRepository extends EntityRepository
|
|||
}
|
||||
|
||||
/**
|
||||
* Retrieves starred entries for a user
|
||||
* Retrieves starred entries for a user.
|
||||
*
|
||||
* @param int $userId
|
||||
* @param int $firstResult
|
||||
|
@ -87,7 +87,7 @@ class EntryRepository extends EntityRepository
|
|||
}
|
||||
|
||||
/**
|
||||
* Find Entries
|
||||
* Find Entries.
|
||||
*
|
||||
* @param int $userId
|
||||
* @param bool $isArchived
|
||||
|
|
|
@ -7,7 +7,7 @@ use Doctrine\ORM\EntityRepository;
|
|||
class UserRepository extends EntityRepository
|
||||
{
|
||||
/**
|
||||
* Find a user by its username and rss roken
|
||||
* Find a user by its username and rss roken.
|
||||
*
|
||||
* @param string $username
|
||||
* @param string $rssToken
|
||||
|
|
|
@ -7,8 +7,7 @@ use Symfony\Component\Security\Core\Exception\BadCredentialsException;
|
|||
|
||||
/**
|
||||
* This override just add en extra variable (username) to be able to salt the password
|
||||
* the way Wallabag v1 does. It will avoid to break compatibility with Wallabag v1
|
||||
*
|
||||
* the way Wallabag v1 does. It will avoid to break compatibility with Wallabag v1.
|
||||
*/
|
||||
class WallabagPasswordEncoder extends BasePasswordEncoder
|
||||
{
|
||||
|
|
|
@ -45,7 +45,7 @@ class WallabagAuthenticationProvider extends UserAuthenticationProvider
|
|||
throw new BadCredentialsException('The credentials were changed from another session.');
|
||||
}
|
||||
} else {
|
||||
if ("" === ($presentedPassword = $token->getCredentials())) {
|
||||
if ('' === ($presentedPassword = $token->getCredentials())) {
|
||||
throw new BadCredentialsException('The presented password cannot be empty.');
|
||||
}
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ final class Extractor
|
|||
{
|
||||
public static function extract($url)
|
||||
{
|
||||
$pageContent = Extractor::getPageContent(new Url(base64_encode($url)));
|
||||
$pageContent = self::getPageContent(new Url(base64_encode($url)));
|
||||
$title = $pageContent['rss']['channel']['item']['title'] ?: 'Untitled';
|
||||
$body = $pageContent['rss']['channel']['item']['description'];
|
||||
|
||||
|
@ -21,9 +21,10 @@ final class Extractor
|
|||
}
|
||||
|
||||
/**
|
||||
* Get the content for a given URL (by a call to FullTextFeed)
|
||||
* Get the content for a given URL (by a call to FullTextFeed).
|
||||
*
|
||||
* @param Url $url
|
||||
*
|
||||
* @param Url $url
|
||||
* @return mixed
|
||||
*/
|
||||
public static function getPageContent(Url $url)
|
||||
|
@ -49,12 +50,12 @@ final class Extractor
|
|||
$scope = function () {
|
||||
extract(func_get_arg(1));
|
||||
$_GET = $_REQUEST = array(
|
||||
"url" => $url->getUrl(),
|
||||
"max" => 5,
|
||||
"links" => "preserve",
|
||||
"exc" => "",
|
||||
"format" => "json",
|
||||
"submit" => "Create Feed",
|
||||
'url' => $url->getUrl(),
|
||||
'max' => 5,
|
||||
'links' => 'preserve',
|
||||
'exc' => '',
|
||||
'format' => 'json',
|
||||
'submit' => 'Create Feed',
|
||||
);
|
||||
ob_start();
|
||||
require func_get_arg(0);
|
||||
|
@ -67,11 +68,11 @@ final class Extractor
|
|||
// Silence $scope function to avoid
|
||||
// issues with FTRSS when error_reporting is to high
|
||||
// FTRSS generates PHP warnings which break output
|
||||
$json = @$scope(__DIR__."/../../../../vendor/wallabag/Fivefilters_Libraries/makefulltextfeed.php", array("url" => $url));
|
||||
$json = @$scope(__DIR__.'/../../../../vendor/wallabag/Fivefilters_Libraries/makefulltextfeed.php', array('url' => $url));
|
||||
|
||||
// Clearing and restoring context
|
||||
foreach ($GLOBALS as $key => $value) {
|
||||
if ($key != "GLOBALS" && $key != "_SESSION") {
|
||||
if ($key != 'GLOBALS' && $key != '_SESSION') {
|
||||
unset($GLOBALS[$key]);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@ namespace Wallabag\CoreBundle\Tools;
|
|||
class Utils
|
||||
{
|
||||
/**
|
||||
* Generate a token used for RSS
|
||||
* Generate a token used for RSS.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
|
|
|
@ -13,9 +13,10 @@ class WallabagExtension extends \Twig_Extension
|
|||
}
|
||||
|
||||
/**
|
||||
* Returns the domain name for a URL
|
||||
* Returns the domain name for a URL.
|
||||
*
|
||||
* @param $url
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getDomainName($url)
|
||||
|
@ -24,9 +25,10 @@ class WallabagExtension extends \Twig_Extension
|
|||
}
|
||||
|
||||
/**
|
||||
* For a given text, we calculate reading time for an article
|
||||
* For a given text, we calculate reading time for an article.
|
||||
*
|
||||
* @param $text
|
||||
*
|
||||
* @return float
|
||||
*/
|
||||
public static function getReadingTime($text)
|
||||
|
|
Loading…
Reference in a new issue