From: Neil <neil@0xm.net>
Date: Thu, 3 Dec 2020 13:15:32 +0000 (+0000)
Subject: Initial commit
X-Git-Url: https://git.mckillop.org/gitweb/?a=commitdiff_plain;ds=sidebyside;p=lemmy-php

Initial commit
---

f7641d24f5b86b3886351dd94a4ee373e1a790cd
diff --git a/lemmy.class.php b/lemmy.class.php
new file mode 100644
index 0000000..704de56
--- /dev/null
+++ b/lemmy.class.php
@@ -0,0 +1,61 @@
+<?php
+
+class lemmy {
+	function __construct($lemmy_url) {
+		$this->url = $lemmy_url."/api/v1";
+		$this->last_error = null;
+	}
+
+	function registerUser($data) {
+		$response = $this->http_request("/user/register", $data);
+		return $response;
+	}
+
+	function login($username, $password) {
+		$details = array("username_or_email" => $username,
+				"password"=>$password);
+		$response = $this->http_request("/user/login", $details);
+		if(!$response)
+			return false;
+		return $response['jwt'];
+	}
+
+	function createPost($data) {
+		if(empty($data['name']) and empty($data['url'])) {
+			$this->last_error = "Missing name/url";
+			return false;
+		}
+		if(empty($data['community_id']) or empty($data['auth'])) {
+			$this->last_error = "Missing community_id or auth token";
+			return false;
+		}
+		if(empty($data['nsfw']))
+			$data['nsfw'] = false;
+		$response = $this->http_request("/post", $data);
+		if(!$response)
+			return false;
+		return $response['post'];
+	}
+
+	function http_request($url, $payload) {
+		$payload = json_encode($payload);
+		print_r($payload);
+		$ch = curl_init($this->url.$url);
+		echo "Trying for ".$this->url.$url."\n";
+		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+		curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
+		curl_setopt($ch, CURLOPT_POST, true);
+		curl_setopt($ch, CURLINFO_HEADER_OUT, true);
+		curl_setopt($ch, CURLOPT_HTTPHEADER, array(	'Content-Type: application/json',
+								'Content-Length: '.strlen($payload)));
+		$response = json_decode(curl_exec($ch), true);
+		print_r($response);
+		if(!empty($response['error'])) {
+			$this->last_error = $response['error'];
+			return false;
+		}
+		return $response;
+	}
+}
+
+?>