Merge remote-tracking branch 'origin/1.8.x' into fix-upgrade-utopia-database

This commit is contained in:
Damodar Lohani 2025-11-13 07:00:45 +00:00
commit aa5e3bf9a9
32 changed files with 707 additions and 46 deletions

View file

@ -60,7 +60,7 @@ return [
[
'key' => 'flutter',
'name' => 'Flutter',
'version' => '20.3.0',
'version' => '20.3.1',
'url' => 'https://github.com/appwrite/sdk-for-flutter',
'package' => 'https://pub.dev/packages/appwrite',
'enabled' => true,
@ -376,7 +376,7 @@ return [
[
'key' => 'dart',
'name' => 'Dart',
'version' => '19.3.0',
'version' => '19.4.0',
'url' => 'https://github.com/appwrite/sdk-for-dart',
'package' => 'https://pub.dev/packages/dart_appwrite',
'enabled' => true,

View file

@ -13105,6 +13105,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -13131,7 +13132,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []
@ -13746,6 +13748,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -13772,7 +13775,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []
@ -30954,6 +30958,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -30980,7 +30985,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []
@ -31601,6 +31607,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -31627,7 +31634,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []

View file

@ -12127,6 +12127,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -12153,7 +12154,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []
@ -12529,6 +12531,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -12555,7 +12558,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []
@ -21703,6 +21707,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -21729,7 +21734,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []
@ -22122,6 +22128,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -22148,7 +22155,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []

View file

@ -13105,6 +13105,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -13131,7 +13132,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []
@ -13746,6 +13748,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -13772,7 +13775,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []
@ -30954,6 +30958,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -30980,7 +30985,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []
@ -31601,6 +31607,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -31627,7 +31634,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []

View file

@ -12127,6 +12127,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -12153,7 +12154,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []
@ -12529,6 +12531,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -12555,7 +12558,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []
@ -21703,6 +21707,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -21729,7 +21734,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []
@ -22122,6 +22128,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -22148,7 +22155,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []

View file

@ -13041,6 +13041,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -13067,7 +13068,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []
@ -13683,6 +13685,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -13709,7 +13712,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []
@ -31058,6 +31062,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -31084,7 +31089,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []
@ -31708,6 +31714,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -31734,7 +31741,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []

View file

@ -12078,6 +12078,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -12104,7 +12105,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []
@ -12493,6 +12495,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -12519,7 +12522,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []
@ -21845,6 +21849,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -21871,7 +21876,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []
@ -22277,6 +22283,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -22303,7 +22310,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []

View file

@ -13041,6 +13041,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -13067,7 +13068,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []
@ -13683,6 +13685,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -13709,7 +13712,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []
@ -31058,6 +31062,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -31084,7 +31089,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []
@ -31708,6 +31714,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -31734,7 +31741,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []

View file

@ -12078,6 +12078,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -12104,7 +12105,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []
@ -12493,6 +12495,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -12519,7 +12522,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []
@ -21845,6 +21849,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -21871,7 +21876,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []
@ -22277,6 +22283,7 @@
"dart-3.3",
"dart-3.5",
"dart-3.8",
"dart-3.9",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@ -22303,7 +22310,8 @@
"flutter-3.24",
"flutter-3.27",
"flutter-3.29",
"flutter-3.32"
"flutter-3.32",
"flutter-3.35"
],
"x-enum-name": null,
"x-enum-keys": []

24
composer.lock generated
View file

@ -756,16 +756,16 @@
},
{
"name": "google/protobuf",
"version": "v4.33.0",
"version": "v4.33.1",
"source": {
"type": "git",
"url": "https://github.com/protocolbuffers/protobuf-php.git",
"reference": "b50269e23204e5ae859a326ec3d90f09efe3047d"
"reference": "0cd73ccf0cd26c3e72299cce1ea6144091a57e12"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/b50269e23204e5ae859a326ec3d90f09efe3047d",
"reference": "b50269e23204e5ae859a326ec3d90f09efe3047d",
"url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/0cd73ccf0cd26c3e72299cce1ea6144091a57e12",
"reference": "0cd73ccf0cd26c3e72299cce1ea6144091a57e12",
"shasum": ""
},
"require": {
@ -794,9 +794,9 @@
"proto"
],
"support": {
"source": "https://github.com/protocolbuffers/protobuf-php/tree/v4.33.0"
"source": "https://github.com/protocolbuffers/protobuf-php/tree/v4.33.1"
},
"time": "2025-10-15T20:10:28+00:00"
"time": "2025-11-12T21:58:05+00:00"
},
{
"name": "league/csv",
@ -5383,16 +5383,16 @@
"packages-dev": [
{
"name": "appwrite/sdk-generator",
"version": "1.5.3",
"version": "1.5.4",
"source": {
"type": "git",
"url": "https://github.com/appwrite/sdk-generator.git",
"reference": "1a7a3b89147aa8c1bde5247f8eeb7e4832c6016d"
"reference": "958947b6483a79e11c3812f23bb3056199fa4105"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/1a7a3b89147aa8c1bde5247f8eeb7e4832c6016d",
"reference": "1a7a3b89147aa8c1bde5247f8eeb7e4832c6016d",
"url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/958947b6483a79e11c3812f23bb3056199fa4105",
"reference": "958947b6483a79e11c3812f23bb3056199fa4105",
"shasum": ""
},
"require": {
@ -5428,9 +5428,9 @@
"description": "Appwrite PHP library for generating API SDKs for multiple programming languages and platforms",
"support": {
"issues": "https://github.com/appwrite/sdk-generator/issues",
"source": "https://github.com/appwrite/sdk-generator/tree/1.5.3"
"source": "https://github.com/appwrite/sdk-generator/tree/1.5.4"
},
"time": "2025-11-10T09:50:41+00:00"
"time": "2025-11-12T12:43:42+00:00"
},
{
"name": "doctrine/annotations",

View file

@ -0,0 +1,41 @@
import io.appwrite.Client;
import io.appwrite.coroutines.CoroutineCallback;
import io.appwrite.services.Avatars;
Client client = new Client(context)
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>"); // Your project ID
Avatars avatars = new Avatars(client);
avatars.getScreenshot(
"https://example.com", // url
mapOf( "a" to "b" ), // headers (optional)
1, // viewportWidth (optional)
1, // viewportHeight (optional)
0.1, // scale (optional)
theme.LIGHT, // theme (optional)
"<USER_AGENT>", // userAgent (optional)
false, // fullpage (optional)
"<LOCALE>", // locale (optional)
timezone.AFRICA_ABIDJAN, // timezone (optional)
-90, // latitude (optional)
-180, // longitude (optional)
0, // accuracy (optional)
false, // touch (optional)
listOf(), // permissions (optional)
0, // sleep (optional)
0, // width (optional)
0, // height (optional)
-1, // quality (optional)
output.JPG, // output (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();
return;
}
Log.d("Appwrite", result.toString());
})
);

View file

@ -0,0 +1,32 @@
import io.appwrite.Client
import io.appwrite.coroutines.CoroutineCallback
import io.appwrite.services.Avatars
val client = Client(context)
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>") // Your project ID
val avatars = Avatars(client)
val result = avatars.getScreenshot(
url = "https://example.com",
headers = mapOf( "a" to "b" ), // (optional)
viewportWidth = 1, // (optional)
viewportHeight = 1, // (optional)
scale = 0.1, // (optional)
theme = theme.LIGHT, // (optional)
userAgent = "<USER_AGENT>", // (optional)
fullpage = false, // (optional)
locale = "<LOCALE>", // (optional)
timezone = timezone.AFRICA_ABIDJAN, // (optional)
latitude = -90, // (optional)
longitude = -180, // (optional)
accuracy = 0, // (optional)
touch = false, // (optional)
permissions = listOf(), // (optional)
sleep = 0, // (optional)
width = 0, // (optional)
height = 0, // (optional)
quality = -1, // (optional)
output = output.JPG, // (optional)
)

View file

@ -0,0 +1,32 @@
import Appwrite
import AppwriteEnums
let client = Client()
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>") // Your project ID
let avatars = Avatars(client)
let bytes = try await avatars.getScreenshot(
url: "https://example.com",
headers: [:], // optional
viewportWidth: 1, // optional
viewportHeight: 1, // optional
scale: 0.1, // optional
theme: .light, // optional
userAgent: "<USER_AGENT>", // optional
fullpage: false, // optional
locale: "<LOCALE>", // optional
timezone: .africaAbidjan, // optional
latitude: -90, // optional
longitude: -180, // optional
accuracy: 0, // optional
touch: false, // optional
permissions: [], // optional
sleep: 0, // optional
width: 0, // optional
height: 0, // optional
quality: -1, // optional
output: .jpg // optional
)

View file

@ -0,0 +1,65 @@
import 'package:appwrite/appwrite.dart';
Client client = Client()
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
.setProject('<YOUR_PROJECT_ID>'); // Your project ID
Avatars avatars = Avatars(client);
// Downloading file
UInt8List bytes = await avatars.getScreenshot(
url: 'https://example.com',
headers: {}, // optional
viewportWidth: 1, // optional
viewportHeight: 1, // optional
scale: 0.1, // optional
theme: .light, // optional
userAgent: '<USER_AGENT>', // optional
fullpage: false, // optional
locale: '<LOCALE>', // optional
timezone: .africaAbidjan, // optional
latitude: -90, // optional
longitude: -180, // optional
accuracy: 0, // optional
touch: false, // optional
permissions: [], // optional
sleep: 0, // optional
width: 0, // optional
height: 0, // optional
quality: -1, // optional
output: .jpg, // optional
)
final file = File('path_to_file/filename.ext');
file.writeAsBytesSync(bytes);
// Displaying image preview
FutureBuilder(
future: avatars.getScreenshot(
url:'https://example.com' ,
headers:{} , // optional
viewportWidth:1 , // optional
viewportHeight:1 , // optional
scale:0.1 , // optional
theme: .light, // optional
userAgent:'<USER_AGENT>' , // optional
fullpage:false , // optional
locale:'<LOCALE>' , // optional
timezone: .africaAbidjan, // optional
latitude:-90 , // optional
longitude:-180 , // optional
accuracy:0 , // optional
touch:false , // optional
permissions:[] , // optional
sleep:0 , // optional
width:0 , // optional
height:0 , // optional
quality:-1 , // optional
output: .jpg, // optional
), // Works for both public file and private file, for private files you need to be logged in
builder: (context, snapshot) {
return snapshot.hasData && snapshot.data != null
? Image.memory(snapshot.data)
: CircularProgressIndicator();
}
);

View file

@ -0,0 +1,32 @@
import { Client, Avatars, , , } from "react-native-appwrite";
const client = new Client()
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
.setProject('<YOUR_PROJECT_ID>'); // Your project ID
const avatars = new Avatars(client);
const result = avatars.getScreenshot({
url: 'https://example.com',
headers: {}, // optional
viewportWidth: 1, // optional
viewportHeight: 1, // optional
scale: 0.1, // optional
theme: .Light, // optional
userAgent: '<USER_AGENT>', // optional
fullpage: false, // optional
locale: '<LOCALE>', // optional
timezone: .AfricaAbidjan, // optional
latitude: -90, // optional
longitude: -180, // optional
accuracy: 0, // optional
touch: false, // optional
permissions: [], // optional
sleep: 0, // optional
width: 0, // optional
height: 0, // optional
quality: -1, // optional
output: .Jpg // optional
});
console.log(result);

View file

@ -0,0 +1,6 @@
GET /v1/avatars/screenshots HTTP/1.1
Host: cloud.appwrite.io
X-Appwrite-Response-Format: 1.8.0
X-Appwrite-Project: <YOUR_PROJECT_ID>
X-Appwrite-Session:
X-Appwrite-JWT: <YOUR_JWT>

View file

@ -0,0 +1,32 @@
import { Client, Avatars, , , } from "appwrite";
const client = new Client()
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
.setProject('<YOUR_PROJECT_ID>'); // Your project ID
const avatars = new Avatars(client);
const result = avatars.getScreenshot({
url: 'https://example.com',
headers: {}, // optional
viewportWidth: 1, // optional
viewportHeight: 1, // optional
scale: 0.1, // optional
theme: .Light, // optional
userAgent: '<USER_AGENT>', // optional
fullpage: false, // optional
locale: '<LOCALE>', // optional
timezone: .AfricaAbidjan, // optional
latitude: -90, // optional
longitude: -180, // optional
accuracy: 0, // optional
touch: false, // optional
permissions: [], // optional
sleep: 0, // optional
width: 0, // optional
height: 0, // optional
quality: -1, // optional
output: .Jpg // optional
});
console.log(result);

View file

@ -0,0 +1,32 @@
import { Client, Avatars, , , } from "@appwrite.io/console";
const client = new Client()
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
.setProject('<YOUR_PROJECT_ID>'); // Your project ID
const avatars = new Avatars(client);
const result = avatars.getScreenshot({
url: 'https://example.com',
headers: {}, // optional
viewportWidth: 1, // optional
viewportHeight: 1, // optional
scale: 0.1, // optional
theme: .Light, // optional
userAgent: '<USER_AGENT>', // optional
fullpage: false, // optional
locale: '<LOCALE>', // optional
timezone: .AfricaAbidjan, // optional
latitude: -90, // optional
longitude: -180, // optional
accuracy: 0, // optional
touch: false, // optional
permissions: [], // optional
sleep: 0, // optional
width: 0, // optional
height: 0, // optional
quality: -1, // optional
output: .Jpg // optional
});
console.log(result);

View file

@ -0,0 +1,31 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = Client()
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
.setProject('<YOUR_PROJECT_ID>') // Your project ID
.setSession(''); // The user session to authenticate with
Avatars avatars = Avatars(client);
UInt8List result = await avatars.getScreenshot(
url: 'https://example.com',
headers: {}, // (optional)
viewportWidth: 1, // (optional)
viewportHeight: 1, // (optional)
scale: 0.1, // (optional)
theme: .light, // (optional)
userAgent: '<USER_AGENT>', // (optional)
fullpage: false, // (optional)
locale: '<LOCALE>', // (optional)
timezone: .africaAbidjan, // (optional)
latitude: -90, // (optional)
longitude: -180, // (optional)
accuracy: 0, // (optional)
touch: false, // (optional)
permissions: [], // (optional)
sleep: 0, // (optional)
width: 0, // (optional)
height: 0, // (optional)
quality: -1, // (optional)
output: .jpg, // (optional)
);

View file

@ -0,0 +1,34 @@
using Appwrite;
using Appwrite.Enums;
using Appwrite.Models;
using Appwrite.Services;
Client client = new Client()
.SetEndPoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
.SetProject("<YOUR_PROJECT_ID>") // Your project ID
.SetSession(""); // The user session to authenticate with
Avatars avatars = new Avatars(client);
byte[] result = await avatars.GetScreenshot(
url: "https://example.com",
headers: [object], // optional
viewportWidth: 1, // optional
viewportHeight: 1, // optional
scale: 0.1, // optional
theme: .Light, // optional
userAgent: "<USER_AGENT>", // optional
fullpage: false, // optional
locale: "<LOCALE>", // optional
timezone: .AfricaAbidjan, // optional
latitude: -90, // optional
longitude: -180, // optional
accuracy: 0, // optional
touch: false, // optional
permissions: new List<string>(), // optional
sleep: 0, // optional
width: 0, // optional
height: 0, // optional
quality: -1, // optional
output: .Jpg // optional
);

View file

@ -0,0 +1,38 @@
package main
import (
"fmt"
"github.com/appwrite/sdk-for-go/client"
"github.com/appwrite/sdk-for-go/avatars"
)
client := client.New(
client.WithEndpoint("https://<REGION>.cloud.appwrite.io/v1")
client.WithProject("<YOUR_PROJECT_ID>")
client.WithSession("")
)
service := avatars.New(client)
response, error := service.GetScreenshot(
"https://example.com",
avatars.WithGetScreenshotHeaders(map[string]interface{}{}),
avatars.WithGetScreenshotViewportWidth(1),
avatars.WithGetScreenshotViewportHeight(1),
avatars.WithGetScreenshotScale(0.1),
avatars.WithGetScreenshotTheme("light"),
avatars.WithGetScreenshotUserAgent("<USER_AGENT>"),
avatars.WithGetScreenshotFullpage(false),
avatars.WithGetScreenshotLocale("<LOCALE>"),
avatars.WithGetScreenshotTimezone("africa/abidjan"),
avatars.WithGetScreenshotLatitude(-90),
avatars.WithGetScreenshotLongitude(-180),
avatars.WithGetScreenshotAccuracy(0),
avatars.WithGetScreenshotTouch(false),
avatars.WithGetScreenshotPermissions([]interface{}{}),
avatars.WithGetScreenshotSleep(0),
avatars.WithGetScreenshotWidth(0),
avatars.WithGetScreenshotHeight(0),
avatars.WithGetScreenshotQuality(-1),
avatars.WithGetScreenshotOutput("jpg"),
)

View file

@ -0,0 +1,42 @@
import io.appwrite.Client;
import io.appwrite.coroutines.CoroutineCallback;
import io.appwrite.services.Avatars;
Client client = new Client()
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>") // Your project ID
.setSession(""); // The user session to authenticate with
Avatars avatars = new Avatars(client);
avatars.getScreenshot(
"https://example.com", // url
mapOf( "a" to "b" ), // headers (optional)
1, // viewportWidth (optional)
1, // viewportHeight (optional)
0.1, // scale (optional)
.LIGHT, // theme (optional)
"<USER_AGENT>", // userAgent (optional)
false, // fullpage (optional)
"<LOCALE>", // locale (optional)
.AFRICA_ABIDJAN, // timezone (optional)
-90, // latitude (optional)
-180, // longitude (optional)
0, // accuracy (optional)
false, // touch (optional)
listOf(), // permissions (optional)
0, // sleep (optional)
0, // width (optional)
0, // height (optional)
-1, // quality (optional)
.JPG, // output (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();
return;
}
System.out.println(result);
})
);

View file

@ -0,0 +1,33 @@
import io.appwrite.Client
import io.appwrite.coroutines.CoroutineCallback
import io.appwrite.services.Avatars
val client = Client()
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>") // Your project ID
.setSession("") // The user session to authenticate with
val avatars = Avatars(client)
val result = avatars.getScreenshot(
url = "https://example.com",
headers = mapOf( "a" to "b" ), // optional
viewportWidth = 1, // optional
viewportHeight = 1, // optional
scale = 0.1, // optional
theme = "light", // optional
userAgent = "<USER_AGENT>", // optional
fullpage = false, // optional
locale = "<LOCALE>", // optional
timezone = "africa/abidjan", // optional
latitude = -90, // optional
longitude = -180, // optional
accuracy = 0, // optional
touch = false, // optional
permissions = listOf(), // optional
sleep = 0, // optional
width = 0, // optional
height = 0, // optional
quality = -1, // optional
output = "jpg" // optional
)

View file

@ -0,0 +1,31 @@
const sdk = require('node-appwrite');
const client = new sdk.Client()
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
.setProject('<YOUR_PROJECT_ID>') // Your project ID
.setSession(''); // The user session to authenticate with
const avatars = new sdk.Avatars(client);
const result = await avatars.getScreenshot({
url: 'https://example.com',
headers: {}, // optional
viewportWidth: 1, // optional
viewportHeight: 1, // optional
scale: 0.1, // optional
theme: sdk..Light, // optional
userAgent: '<USER_AGENT>', // optional
fullpage: false, // optional
locale: '<LOCALE>', // optional
timezone: sdk..AfricaAbidjan, // optional
latitude: -90, // optional
longitude: -180, // optional
accuracy: 0, // optional
touch: false, // optional
permissions: [], // optional
sleep: 0, // optional
width: 0, // optional
height: 0, // optional
quality: -1, // optional
output: sdk..Jpg // optional
});

View file

@ -0,0 +1,32 @@
from appwrite.client import Client
from appwrite.services.avatars import Avatars
client = Client()
client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint
client.set_project('<YOUR_PROJECT_ID>') # Your project ID
client.set_session('') # The user session to authenticate with
avatars = Avatars(client)
result = avatars.get_screenshot(
url = 'https://example.com',
headers = {}, # optional
viewport_width = 1, # optional
viewport_height = 1, # optional
scale = 0.1, # optional
theme = .LIGHT, # optional
user_agent = '<USER_AGENT>', # optional
fullpage = False, # optional
locale = '<LOCALE>', # optional
timezone = .AFRICA_ABIDJAN, # optional
latitude = -90, # optional
longitude = -180, # optional
accuracy = 0, # optional
touch = False, # optional
permissions = [], # optional
sleep = 0, # optional
width = 0, # optional
height = 0, # optional
quality = -1, # optional
output = .JPG # optional
)

View file

@ -0,0 +1,7 @@
GET /v1/avatars/screenshots HTTP/1.1
Host: cloud.appwrite.io
X-Appwrite-Response-Format: 1.8.0
X-Appwrite-Project: <YOUR_PROJECT_ID>
X-Appwrite-Session:
X-Appwrite-Key: <YOUR_API_KEY>
X-Appwrite-JWT: <YOUR_JWT>

View file

@ -0,0 +1,33 @@
require 'appwrite'
include Appwrite
client = Client.new
.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint
.set_project('<YOUR_PROJECT_ID>') # Your project ID
.set_session('') # The user session to authenticate with
avatars = Avatars.new(client)
result = avatars.get_screenshot(
url: 'https://example.com',
headers: {}, # optional
viewport_width: 1, # optional
viewport_height: 1, # optional
scale: 0.1, # optional
theme: ::LIGHT, # optional
user_agent: '<USER_AGENT>', # optional
fullpage: false, # optional
locale: '<LOCALE>', # optional
timezone: ::AFRICA_ABIDJAN, # optional
latitude: -90, # optional
longitude: -180, # optional
accuracy: 0, # optional
touch: false, # optional
permissions: [], # optional
sleep: 0, # optional
width: 0, # optional
height: 0, # optional
quality: -1, # optional
output: ::JPG # optional
)

View file

@ -0,0 +1,33 @@
import Appwrite
import AppwriteEnums
let client = Client()
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
.setProject("<YOUR_PROJECT_ID>") // Your project ID
.setSession("") // The user session to authenticate with
let avatars = Avatars(client)
let bytes = try await avatars.getScreenshot(
url: "https://example.com",
headers: [:], // optional
viewportWidth: 1, // optional
viewportHeight: 1, // optional
scale: 0.1, // optional
theme: .light, // optional
userAgent: "<USER_AGENT>", // optional
fullpage: false, // optional
locale: "<LOCALE>", // optional
timezone: .africaAbidjan, // optional
latitude: -90, // optional
longitude: -180, // optional
accuracy: 0, // optional
touch: false, // optional
permissions: [], // optional
sleep: 0, // optional
width: 0, // optional
height: 0, // optional
quality: -1, // optional
output: .jpg // optional
)

View file

@ -1,5 +1,12 @@
# Change Log
## 19.4.0
* Add `getScreenshot` method to `Avatars` service
* Add enums `Theme`, `Output` and `Timezone`
* Update runtime enums to add support for `dart39` and `flutter335` runtimes
* Fix passing of `null` values and stripping only non-nullable optional parameters from the request body
## 19.3.0
* Add `total` parameter to list queries allowing skipping counting rows in a table for improved performance

View file

@ -1,5 +1,9 @@
# Change Log
## 20.3.1
* Fix passing of `null` values and stripping only non-nullable optional parameters from the request body
## 20.3.0
* Add `total` parameter to list queries allowing skipping counting rows in a table for improved performance