All Projects → LancerComet → synoter

LancerComet / synoter

Licence: other
A node library to get data from Synology NoteStation.

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to synoter

synologylyric
Collection of Synology Audio Station Lyrics Module
Stars: ✭ 61 (+281.25%)
Mutual labels:  synology
synology-csi
Container Storage Interface (CSI) for Synology
Stars: ✭ 136 (+750%)
Mutual labels:  synology
FileBasedMiniDMS
This php script sorts your documents (by using hardlinks) into subfolders based on the hashtags it finds in your documents filenames.
Stars: ✭ 35 (+118.75%)
Mutual labels:  synology
flickr-uploader
Upload a directory of media to Flickr to use as a backup to your local storage
Stars: ✭ 38 (+137.5%)
Mutual labels:  synology
AirConnect-Synology
Updated AirConnect packages for Synology NAS and Synology Router
Stars: ✭ 200 (+1150%)
Mutual labels:  synology
docker-telegraf-influxdb-grafana
Docker Image with Telegraf, InfluxDB and Grafana
Stars: ✭ 17 (+6.25%)
Mutual labels:  synology
qb-rss-manager
qBittorrent rss订阅规则管理, 支持Docker环境, 群晖, Windows桌面, Linux桌面的qb. 推荐直接使用懒人包体验完整功能.
Stars: ✭ 134 (+737.5%)
Mutual labels:  synology
homebridge-synology
Control your Synology Diskstation with Homekit
Stars: ✭ 135 (+743.75%)
Mutual labels:  synology
synology-open-vm-tools
VMware Tools for Synology DSM
Stars: ✭ 93 (+481.25%)
Mutual labels:  synology
redpill-tool-chain
这是一个测试项目,可能会有不可预测的事情发生(比如:毁损数据、烧毁硬件等等),请谨慎使用。
Stars: ✭ 490 (+2962.5%)
Mutual labels:  synology
synology-api
A Python wrapper around Synology API
Stars: ✭ 116 (+625%)
Mutual labels:  synology
synology
My Synology automation scripts. Making Synology NAS command line usable
Stars: ✭ 45 (+181.25%)
Mutual labels:  synology
spkrepo
Synology Package Repository
Stars: ✭ 100 (+525%)
Mutual labels:  synology
Synology-NAS-monitoring
influxDB, Grafana, snmp and telegraf
Stars: ✭ 140 (+775%)
Mutual labels:  synology
synology-update-plex
Script to Auto Update Plex Media Server on Synology NAS
Stars: ✭ 89 (+456.25%)
Mutual labels:  synology
Home-Assistant Config
BeardedTinker Home Assistant configuration. Feel free to browse, edit, tweak, improve, criticize and suggest.
Stars: ✭ 241 (+1406.25%)
Mutual labels:  synology
synology-docker
An Unofficial Script to Update or Restore Docker Engine and Docker Compose on Synology
Stars: ✭ 130 (+712.5%)
Mutual labels:  synology
synology-pihole
Install or Update Pi-Hole as Docker Container on a Synology NAS with a Static IP Address
Stars: ✭ 22 (+37.5%)
Mutual labels:  synology
synology-dlm-rarbg
RarBG search module for Synology Download Manager
Stars: ✭ 73 (+356.25%)
Mutual labels:  synology
phpvirtualbox4dsm
PhpVirtualbox package for Synology DSM
Stars: ✭ 28 (+75%)
Mutual labels:  synology

Synoter

Synoter is designed to get data from Synology NoteStation.

This article describes how NoteStation works in DSM 6. For now I dont know what's going on in DSM 7, I have to look into this.

How it works?

Synology NoteStation is an official note-taking app for NAS system DSM. But unfortunately, unlinke other apps such as AudioStaion or FileStation, there is no official api for further development, so you can't customize your NoteStation for your own purpose.

After some rearch, I have found something useful:

  1. NoteStation stores notes (only meta info here, no note content) to PostgreSQL (in DSM) for indexing.

  2. Then NoteStation adds some fts (full text searching) tokens to these indexing data and copies them to a single sqlite3 file that is stored in /<volume_name>/@appstore/NoteStation/db/fts.db.

  3. The real stuffs are stored in /<volume_name>/@SynoDrive/NoteStation. Each folder holds a note, and the name of folder is the object_id in PostgreSQL.

So if you want to take something out of the NoteStation, the only thing we need to do is:

  1. Find out all notes that are tagged with "blog" (or anything you like) from fts.db and get their object_id.

  2. Read notes from /<volume_name>/@SynoDrive/NoteStation/<object_id> by using object_id from above.

And now we've got everything we need.

Something you might know.

Synoter is written in Typescript, so you should know how to code in TypeScript, or just compile them to JavaScript.

If your NAS is running node.js v4, you have to import both babel-polyfill and babel-register in your own application otherwise sqlite will keep throwing error.

Quick Start.

  1. Git clone and copy these files to your own project.

  2. Rock n' roll.

// In your app.

import { getAllNotesWithTag } from './synoter/src/index'

getNotesTaggedWithBlog()

async function getNotesTaggedWithBlog () {
  const notesData = await getAllNotesWithTag('Blog')
  console.log(notesData)  //INoteData[]. This is an array that holds all note data.
  // ...
}

You can check example codes in test folder.

License

MIT.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].