No Description

d0c 7c7a417092 Api doc 6 months ago
mysuitablephone 58f19486e8 search 11 months ago
suitablephones 47cc588c0f removed network arrayobject 7 months ago
.gitignore 386740dd9d setting 11 months ago
API.md 7c7a417092 Api doc 6 months ago
Readme.md a002819abb readme 11 months ago
docker-compose.yml c1428592d8 test postgres 1 year ago
manage.py 22ed355e69 first commit 1 year ago
requirements.txt 58f19486e8 search 11 months ago
start.sh eddebd3192 storage 8 months ago

Readme.md

Suitable Phones

LineageOS Supported Devices Catalog and API

This project aims to provide a comprehensive catalog of all devices that are officially supported by the LineageOS project, as well as an API for accessing this information programmatically.

Features

The project provides the following features:

  • A catalog of all devices with official support for LineageOS, including device name, codename, LineageOS version(s) supported, and a link to the official LineageOS wiki page for each device.
  • A RESTful API for accessing the device catalog programmatically. The API supports the following endpoints:
    • /search
      • q: string in codename or name or vendor
    • /devices
      • name: contains string
      • megapixel: greater than decimal
      • size_in: less than decimal
      • resolution: contains string (es 1280)
      • version: contains string Returns a list of all mantained devices in the catalog matching search filters, with basic device information.
    • /device
      • codename: Returns detailed information about a specific device, including supported LineageOS versions and a link to the official wiki page.

Installation

git clone https://git.lattuga.net/d0c/suitablephones.git
virtualenv .
source bin/activate
pip install -r requirements.txt

DB is in docker container

docker compose up -d
python manage.py migrate
python manage.py createsuperuser

Download Lineage official wiki as data source. Yaml files descripting all devices are in _"lineage_wiki/data/devices/"

git clone https://github.com/LineageOS/lineage_wiki.git

Set LINEAGEWIKI variable in _mysuitablephone/settingslocal.py with the proper path of lineage_wiki.

es.

LINEAGEWIKI = '/home/d0c/lineage_wiki'

Populate database:

python manage.py fetchphones

Run

python manage.py runserver

API Usage

To use the API, you'll need to obtain an API key by registering an account on the project website. Once you have an API key, you can use it to authenticate your API requests.

Here are some example API requests: Get all devices

bash


GET /devices

Response:

json

[
  {
    "name": "Samsung Galaxy S20",
    "codename": "beyond2",
    "versions": ["18.1"],
    "wiki_url": "https://wiki.lineageos.org/devices/beyond2"
  },
  {
    "name": "OnePlus 6T",
    "codename": "fajita",
    "versions": ["18.1"],
    "wiki_url": "https://wiki.lineageos.org/devices/fajita"
  },
  ...
]

Get a specific device

bash


GET /devices/fajita

Response:

json


{
  "name": "OnePlus 6T",
  "codename": "fajita",
  "versions": ["18.1"],
  "wiki_url": "https://wiki.lineageos.org/devices/fajita"
}

Contributing

Contributions to this project are welcome! If you'd like to improve the API or search results, please submit a pull request. Be sure to read the contributing guidelines first.

ToDo

  • API key authentication to restrict access to authorized clients. ?