miniflux-rss
Version:
Binding to Miniflux 2 REST API
138 lines (137 loc) • 4.04 kB
TypeScript
/// <reference types="node" />
import { URL } from 'url';
export declare class Miniflux {
url: URL;
username: string;
private authorization;
constructor(server_url: string, username: string, password: string);
request(path: string, data?: any, method?: string): Promise<any>;
get: (path: string) => Promise<any>;
put: (path: string, data?: any) => Promise<any>;
post: (path: string, data: any) => Promise<any>;
delete: (path: string) => Promise<any>;
discover: (url: string) => Promise<FeedLink[]>;
feeds: () => Promise<Feed[]>;
get_feed: (feed_id: number) => Promise<Feed>;
get_feed_icon: (feed_id: number) => Promise<Icon>;
create_feed: (feed_url: number, category_id?: number) => Promise<CreatedFeed>;
update_feed: (feed_id: number, title?: string, category_id?: number) => Promise<Feed>;
refresh_feed: (feed_id: number) => Promise<void>;
remove_feed: (feed_id: number) => Promise<void>;
get_feed_entry: (feed_id: number, entry_id: number) => Promise<Entry>;
get_entry: (entry_id: number) => Promise<Entry>;
get_feed_entries: (feed_id: number, filter?: Filter) => Promise<EntryList[]>;
get_entries: (filter?: Filter) => Promise<EntryList[]>;
update_entries: (entry_ids: number[], status: EntryStatus) => Promise<void>;
toggle_bookmark: (entry_id: number) => Promise<void>;
categories: () => Promise<Category[]>;
create_category: (title: string) => Promise<Category>;
update_category: (category_id: number, title: string) => Promise<Category>;
delete_category: (category_id: number) => Promise<void>;
ompl_export: () => Promise<string>;
create_user: (username: string, password: string, is_admin: boolean) => Promise<User>;
update_user: (user_id: number, user_settings: UserSettings) => Promise<User>;
users: () => Promise<User[]>;
get_user: (user: string | number) => Promise<User>;
delete_user: (user_id: number) => Promise<void>;
}
export interface UserSettings {
username?: string;
password?: string;
is_admin?: boolean;
theme?: string;
language?: string;
timezone?: string;
}
export interface User {
id: number;
username: string;
language: string;
timezone: string;
theme: string;
entry_sorting_direction: EntryDirection;
}
export interface Filter {
status?: EntryStatus;
order?: EntryOrder;
direction?: EntryDirection;
limit?: number;
offset?: number;
}
export declare enum EntryStatus {
READ = "read",
UNREAD = "unread",
REMOVED = "removed"
}
export declare enum EntryOrder {
ID = "id",
STATUS = "status",
PUBLISHED_AT = "published_at",
CATEGORY_TITLE = "category_title",
CATEGORY_ID = "category_id"
}
export declare enum EntryDirection {
ASCENDING = "asc",
DESCENDING = "desc"
}
export interface MinifluxError {
error_message: string;
}
export interface FeedLink {
url: string;
title: string;
type: string;
}
export interface CreatedFeed {
"feed_id": number;
}
export interface Category {
id: number;
user_id: number;
title: string;
}
export interface IconReference {
feed_id: number;
icon_id: number;
}
export interface Feed {
id: number;
user_id: number;
title: string;
site_url: string;
feed_url: string;
rewrite_rules: string;
scraper_rules: string;
crawler: boolean;
checked_at: string;
etag_header: string;
last_modified_header: string;
parsing_error_count: number;
parsing_error_message: string;
category: Category;
icon: IconReference;
}
export interface Icon {
id: number;
data: string;
mime_type: string;
}
export interface Entry {
id: number;
user_id: number;
feed_id: number;
title: string;
url: string;
comments_url: string;
author: string;
content: string;
hash: string;
published_at: string;
status: string;
starred: boolean;
feed: Feed;
}
export interface EntryList {
total: number;
entries: Entry[];
}