404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@18.117.105.184: ~ $
<?php

declare(strict_types=1);

/*
 * Copyright (c) Ne-Lexa
 *
 * For the full copyright and license information, please view
 * the LICENSE file that was distributed with this source code.
 *
 * @see https://github.com/Ne-Lexa/google-play-scraper
 */

namespace Nelexa\GPlay\Model;

use Nelexa\GPlay\GPlayApps;
use Nelexa\GPlay\Model\Builder\AppBuilder;

/**
 * Contains basic information about the application from the Google Play store.
 *
 * Some sections, such as search, similar applications, applications categories, etc. display
 * a list of applications with limited data. To get detailed information about the application,
 * you must call the appropriate method in the class {@see GPlayApps}.
 *
 * @see AppId Application ID, application locale and country.
 * @see GPlayApps::search() Returns a list of applications from the Google Play
 *     store for a search query.
 * @see GPlayApps::getSimilarApps() Returns a list of similar applications in
 *     the Google Play store.
 * @see GPlayApps::getDeveloperApps() Returns a list of developer applications
 *     in the Google Play store.
 * @see GPlayApps::getTopApps() Returns a list of applications with basic
 *     information from the category and collection of the Google Play store.
 */
class App extends AppId implements \JsonSerializable
{
    use JsonSerializableTrait;

    /** @var string Application name. */
    private $name;

    /** @var string Application description. */
    private $description;

    /** @var string|null Application developer name. */
    private $developerName;

    /** @var GoogleImage Application icon. */
    private $icon;

    /** @var GoogleImage[] Screenshots of the application. */
    private $screenshots;

    /** @var float Application rating on a five-point scale. */
    private $score;

    /** @var string|null Price of the application or null if it is free. */
    private $priceText;

    /** @var string Formatted number of installations of the application. */
    private $installsText;

    /**
     * Creates an object containing basic information about the Android application.
     *
     * @param AppBuilder $builder application builder
     *
     * @ignore
     */
    public function __construct(AppBuilder $builder)
    {
        if (empty($builder->getId())) {
            throw new \InvalidArgumentException(
                'Application ID cannot be null or empty. Solution: $appBuilder->setId(...);'
            );
        }

        if (empty($builder->getLocale())) {
            throw new \InvalidArgumentException(
                'Locale cannot be null or empty. Solution: $appBuilder->setLocale(...);'
            );
        }

        if (empty($builder->getCountry())) {
            throw new \InvalidArgumentException(
                'Country cannot be null or empty. Solution: $appBuilder->setCountry(...);'
            );
        }

        if (empty($builder->getName())) {
            throw new \InvalidArgumentException(
                'The application name cannot be null or empty. Solution: $appBuilder->setName(...);'
            );
        }

        if ($builder->getIcon() === null) {
            throw new \InvalidArgumentException(
                'Application icon cannot be null. Solution: $appBuilder->setIcon(...);'
            );
        }

        if (empty($builder->getScreenshots())) {
            throw new \InvalidArgumentException(
                'Screenshots of the application must contain at least one screenshot. Solution: $appBuilder->setScreenshots(...); or $appBuilder->addScreenshot(...);'
            );
        }

        parent::__construct(
            $builder->getId(),
            $builder->getLocale(),
            $builder->getCountry()
        );

        $this->name = $builder->getName();
        $this->description = $builder->getDescription();
        $this->developerName = $builder->getDeveloperName();
        $this->installsText = $builder->getInstallsText();
        $this->icon = $builder->getIcon();
        $this->screenshots = $builder->getScreenshots();
        $this->score = $builder->getScore();
        $this->priceText = $builder->getPriceText();
    }

    /**
     * Returns application name.
     *
     * @return string application name
     */
    public function getName(): string
    {
        return $this->name;
    }

    /**
     * Returns a description of the application.
     *
     * @return string description of the application
     */
    public function getDescription(): string
    {
        return $this->description;
    }

    /**
     * Returns application summary.
     *
     * @return string|null application summary
     *
     * @deprecated It is no longer possible to get a summary
     */
    public function getSummary(): ?string
    {
        return null;
    }

    /**
     * Returns application developer.
     *
     * @return Developer|null application developer
     *
     * @deprecated Use {@see \Nelexa\GPlay\Model\App::getDeveloperName()}
     */
    public function getDeveloper(): ?Developer
    {
        return null;
    }

    /**
     * Returns application developer name.
     *
     * @return string|null application developer name
     */
    public function getDeveloperName(): ?string
    {
        return $this->developerName;
    }

    /**
     * Returns application icon.
     *
     * @return GoogleImage application icon
     */
    public function getIcon(): GoogleImage
    {
        return $this->icon;
    }

    /**
     * Returns screenshots of the application.
     *
     * The array must contain at least 2 screenshots.
     *
     * Google Play screenshots requirements:
     * * JPEG or 24-bit PNG (no alpha)
     * * Minimum dimension: 320px
     * * Maximum dimension: 3840px
     * * The maximum dimension of the screenshot can't be more than twice as long as the minimum dimension.
     *
     * @return GoogleImage[] array of screenshots
     */
    public function getScreenshots(): array
    {
        return $this->screenshots;
    }

    /**
     * Returns application rating on a five-point scale.
     *
     * @return float rating application
     */
    public function getScore(): float
    {
        return $this->score;
    }

    /**
     * Returns the price of the application.
     *
     * @return string|null application price or null if it is free
     */
    public function getPriceText(): ?string
    {
        return $this->priceText;
    }

    /**
     * Checks that this application is free.
     *
     * @return bool `true` if the application is free and `false` if paid
     */
    public function isFree(): bool
    {
        return $this->priceText === null;
    }

    /**
     * @return string
     */
    public function getInstallsText(): ?string
    {
        return $this->installsText;
    }

    /**
     * Creates a new application builder.
     *
     * @return AppBuilder application builder
     * @ignore
     */
    public static function newBuilder(): AppBuilder
    {
        return new AppBuilder();
    }

    /**
     * Returns class properties as an array.
     *
     * @return array class properties as an array
     */
    public function asArray(): array
    {
        return [
            'id' => $this->getId(),
            'url' => $this->getUrl(),
            'locale' => $this->getLocale(),
            'country' => $this->getCountry(),
            'name' => $this->name,
            'description' => $this->description,
            'developerName' => $this->getDeveloperName(),
            'icon' => $this->icon->getUrl(),
            'screenshots' => array_map(
                static function (GoogleImage $googleImage) {
                    return $googleImage->getUrl();
                },
                $this->screenshots
            ),
            'score' => $this->score,
            'priceText' => $this->priceText,
            'installsText' => $this->installsText,
        ];
    }
}

Filemanager

Name Type Size Permission Actions
Builder Folder 0755
App.php File 7.76 KB 0644
AppId.php File 3.71 KB 0644
AppInfo.php File 14.86 KB 0644
Category.php File 2.64 KB 0644
ClusterPage.php File 1.37 KB 0644
Developer.php File 7.02 KB 0644
GoogleImage.php File 24.22 KB 0644
HistogramRating.php File 3.23 KB 0644
ImageInfo.php File 3.26 KB 0644
JsonSerializableTrait.php File 1.14 KB 0644
Permission.php File 1.63 KB 0644
ReplyReview.php File 1.83 KB 0644
Review.php File 4.98 KB 0644
Video.php File 2.32 KB 0644