Skip to content
67 changes: 66 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,14 @@ COMMONS_HOST="https://commons.wikimedia.org/"
* pageContent
* getPageSummary
* getPageTitle
* mobile - @ToDo
* mobile
* getSections
* getSectionsByRevision
* getSectionsLead
* getSectionsLeadByRevision
* getSectionsRemaining
* getSectionsRemainingByRevision
* getI18n
* feed - @ToDo
* transforms - @ToDo
* math - @ToDo
Expand Down Expand Up @@ -287,6 +294,64 @@ You can use this action for a typeahead search that automatically suggests relev
$res = $wiki->pageContent()->getTitle($params);
```

### Mobile

#### getSections

```php
$wiki = new MediaWiki();
$params = ['title' => 'Jupiter'];
$res = $wiki->mobile()->getSections($params);
```

#### getSectionsByRevision

```php
$wiki = new MediaWiki();
$params = ['title' => 'Jupiter', 'revision' => 1124023924];
$res = $wiki->mobile()->getSectionsByRevision($params);
```

#### getSectionsLead

```php
$wiki = new MediaWiki();
$params = ['title' => 'Jupiter'];
$res = $wiki->mobile()->getSectionsLead($params);
```

#### getSectionsLeadByRevision

```php
$wiki = new MediaWiki();
$params = ['title' => 'Jupiter', 'revision' => 1124023924];
$res = $wiki->mobile()->getSectionsLeadByRevision($params);
```

#### getSectionsRemaining

```php
$wiki = new MediaWiki();
$params = ['title' => 'Jupiter'];
$res = $wiki->mobile()->getSectionsRemaining($params);
```

#### getSectionsRemainingByRevision

```php
$wiki = new MediaWiki();
$params = ['title' => 'Jupiter', 'revision' => 1124023924];
$res = $wiki->mobile()->getSectionsRemainingByRevision($params);
```

#### getI18n

```php
$wiki = new MediaWiki();
$params = ['type' => 'pcs'];
$res = $wiki->mobile()->getI18n($params);
```

## Request parameters validation

For validation the package use `spatie/data-transfer-object` and `ekut/spatie-dto-validators`.
Expand Down
12 changes: 12 additions & 0 deletions src/DTO/Requests/GetI18nRequest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?php

namespace MediawikiSdkPhp\DTO\Requests;

use Ekut\SpatieDtoValidators\Choice;
use Spatie\DataTransferObject\DataTransferObject;

class GetI18nRequest extends DataTransferObject
{
#[Choice(['pcs'])]
public string $type;
}
11 changes: 11 additions & 0 deletions src/DTO/Requests/PageWithRevisionRequest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php

namespace MediawikiSdkPhp\DTO\Requests;

use Spatie\DataTransferObject\Attributes\Strict;

#[Strict]
class PageWithRevisionRequest extends PageRequest
{
public int $revision;
}
18 changes: 18 additions & 0 deletions src/DTO/Responses/Mobile/GetI18n.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?php

namespace MediawikiSdkPhp\DTO\Responses\Mobile;

use Spatie\DataTransferObject\Attributes\CastWith;
use Spatie\DataTransferObject\Casters\ArrayCaster;
use Spatie\DataTransferObject\DataTransferObject;

class GetI18n extends DataTransferObject
{
public string $locale;

/**
* @var GetI18nMessage[]
*/
#[CastWith(ArrayCaster::class, itemType: GetI18nMessage::class)]
public array $messages;
}
84 changes: 84 additions & 0 deletions src/DTO/Responses/Mobile/GetI18nMessage.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
<?php

namespace MediawikiSdkPhp\DTO\Responses\Mobile;

use Spatie\DataTransferObject\Attributes\MapFrom;
use Spatie\DataTransferObject\DataTransferObject;

class GetI18nMessage extends DataTransferObject
{
#[MapFrom('description-add-link-title')]
public string $descriptionAddLinkTitle;

#[MapFrom('article-read-more-title')]
public string $articleReadMoreTitle;

#[MapFrom('table-title-other')]
public string $tableTitleOther;

#[MapFrom('page-edit-history')]
public string $pageEditHistory;

#[MapFrom('info-box-close-text')]
public string $infoBoxCloseText;

#[MapFrom('page-talk-page-subtitle')]
public string $pageTalkPageSubtitle;

#[MapFrom('page-issues-subtitle')]
public string $pageIssuesSubtitle;

#[MapFrom('page-talk-page')]
public string $pageTalkPage;

#[MapFrom('info-box-title')]
public string $infoBoxTitle;

#[MapFrom('view-in-browser-footer-link')]
public string $viewInBrowserFooterLink;

#[MapFrom('page-location')]
public string $pageLocation;

#[MapFrom('page-similar-titles')]
public string $pageSimilarTitles;

#[MapFrom('page-last-edited')]
public string $pageLastEdited;

#[MapFrom('article-about-title')]
public string $articleAboutTitle;

#[MapFrom('page-issues')]
public string $pageIssues;

#[MapFrom('license-footer-name')]
public string $licenseFooterName;

#[MapFrom('license-footer-text')]
public string $licenseFooterText;

#[MapFrom('page-read-in-other-languages')]
public string $pageReadInOtherLanguages;

#[MapFrom('article-edit-button')]
public string $articleEditButton;

#[MapFrom('article-edit-protected-button')]
public string $articleEditProtectedButton;

#[MapFrom('article-section-expand')]
public string $articleSectionExpand;

#[MapFrom('article-section-collapse')]
public string $articleSectionCollapse;

#[MapFrom('table-expand')]
public string $tableExpand;

#[MapFrom('table-collapse')]
public string $tableCollapse;

#[MapFrom('references-preview-header')]
public string $referencesPreviewHeader;
}
12 changes: 12 additions & 0 deletions src/DTO/Responses/Mobile/GetMobile.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?php

namespace MediawikiSdkPhp\DTO\Responses\Mobile;

use Spatie\DataTransferObject\DataTransferObject;

class GetMobile extends DataTransferObject
{
public GetMobileLead $lead;

public GetMobileRemaining $remaining;
}
12 changes: 12 additions & 0 deletions src/DTO/Responses/Mobile/GetMobileImage.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?php

namespace MediawikiSdkPhp\DTO\Responses\Mobile;

use Spatie\DataTransferObject\DataTransferObject;

class GetMobileImage extends DataTransferObject
{
public ?string $file;

public ?array $urls;
}
12 changes: 12 additions & 0 deletions src/DTO/Responses/Mobile/GetMobileLastModifier.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?php

namespace MediawikiSdkPhp\DTO\Responses\Mobile;

use Spatie\DataTransferObject\DataTransferObject;

class GetMobileLastModifier extends DataTransferObject
{
public string $user;

public string $gender;
}
50 changes: 50 additions & 0 deletions src/DTO/Responses/Mobile/GetMobileLead.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
<?php

namespace MediawikiSdkPhp\DTO\Responses\Mobile;

use Spatie\DataTransferObject\Attributes\CastWith;
use Spatie\DataTransferObject\Casters\ArrayCaster;
use Spatie\DataTransferObject\DataTransferObject;

class GetMobileLead extends DataTransferObject
{
public int $ns;

public int $id;

public string $revision;

public string $lastmodified;

public GetMobileLastModifier $lastmodifier;

public string $displaytitle;

public string $normalizedtitle;

public string $wikibase_item;

public string $description;

public string $description_source;

public GetMobileProtection $protection;

public bool $editable;

public int $languagecount;

public ?GetMobileImage $image;

public ?GetMobilePronunciation $pronunciation;

public ?GetMobileSpoken $spoken;

public ?array $hatnotes;

/**
* @var GetMobileSection[]
*/
#[CastWith(ArrayCaster::class, itemType: GetMobileSection::class)]
public ?array $sections;
}
10 changes: 10 additions & 0 deletions src/DTO/Responses/Mobile/GetMobilePronunciation.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

namespace MediawikiSdkPhp\DTO\Responses\Mobile;

use Spatie\DataTransferObject\DataTransferObject;

class GetMobilePronunciation extends DataTransferObject
{
public string $url;
}
12 changes: 12 additions & 0 deletions src/DTO/Responses/Mobile/GetMobileProtection.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?php

namespace MediawikiSdkPhp\DTO\Responses\Mobile;

use Spatie\DataTransferObject\DataTransferObject;

class GetMobileProtection extends DataTransferObject
{
public ?array $edit;

public ?array $move;
}
16 changes: 16 additions & 0 deletions src/DTO/Responses/Mobile/GetMobileRemaining.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php

namespace MediawikiSdkPhp\DTO\Responses\Mobile;

use Spatie\DataTransferObject\Attributes\CastWith;
use Spatie\DataTransferObject\Casters\ArrayCaster;
use Spatie\DataTransferObject\DataTransferObject;

class GetMobileRemaining extends DataTransferObject
{
/**
* @var GetMobileSection[]
*/
#[CastWith(ArrayCaster::class, itemType: GetMobileSection::class)]
public array $sections;
}
20 changes: 20 additions & 0 deletions src/DTO/Responses/Mobile/GetMobileSection.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?php

namespace MediawikiSdkPhp\DTO\Responses\Mobile;

use Spatie\DataTransferObject\DataTransferObject;

class GetMobileSection extends DataTransferObject
{
public int $id;

public ?int $toclevel;

public ?string $anchor;

public ?string $line;

public ?string $text;

public ?bool $isReferenceSection;
}
10 changes: 10 additions & 0 deletions src/DTO/Responses/Mobile/GetMobileSpoken.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

namespace MediawikiSdkPhp\DTO\Responses\Mobile;

use Spatie\DataTransferObject\DataTransferObject;

class GetMobileSpoken extends DataTransferObject
{
public array $files;
}
Loading