• Stars
    star
    108
  • Rank 309,922 (Top 7 %)
  • Language
    PHP
  • License
    GNU Lesser Genera...
  • Created over 5 years ago
  • Updated about 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

remote server for timetodo

TimeTodo

TimeTodo 是一个浮层式的半透明 Todo 应用。除此之外,点击每个 Todo 项后的箭头,可以开始计时。

从 1.0 版本开始 TimeTodo 开始允许用户在添加 Todo 的输入框输入以冒号开头的命令,并以此触发 Web hook 想特定的 URL post Todo数据,并根据其返回值,执行 JS 命令或者 Electron 的命令。此功能极大的提升了 TimeTodo 的可定制性。使其可以用来:

  • 读取其他网站的数据并添加为 TODO
  • 生成随机密码并复制到剪贴板
  • 通过命令设置面板背景和浮动
  • 快捷查找PHP 函数
  • 以及其他 JS 命令和 Electron 命令可以完成的任务。

安装使用

视频说明

以下为 Mac 版说明

⚠️ 1.0使用的存储和之前不同,请预先备份Todo内容。

客户端安装

  1. 官网下载 Zip 包解压
  2. 将 TimeTodo.***.zip 的包解压,将其中的 TimeTodo.app 复制或者移动到 Application 目录
  3. 从 Application 或者启动面板中点击 TimeTodo 图标启动应用

这时候可以正常使用 Todo 的待办事项、计时等相关功能。

高级功能如下:

  1. 将电脑上的图片拖拽到Todo添加输入框( 显示 add new to-do or command 处 ),可以为 TimeTodo 设置背景
  2. 在Todo添加输入框输入 :clean 并回车可以将背景清空
  3. 在Todo添加输入框输入 :close 并回车可以退出应用

Web hook 相关功能

WebHook 测试

⚠️ webhook 会向 hook 地址发送 Todo 数据和剪贴板数据,并执行返回的脚本,所以请务必自行架设。以下地址只供测试,测试完成后请及时更换。

  1. 在Todo添加输入框输入 :webhook=https://timetodo.applinzi.com/ 并回车,可以设置 web hook
  2. 输入 :who 可以测试是否 work 。提示 It's me 为可以正常工作
  3. 输入 :find sort 会打开php手册 sort 函数页面

这个时候 TimeTodo 设置的官方提供的 web hook 服务端,只是用于演示,你需要来部署一个自己的服务端。

⚠️ 以下功能需要有 Web 服务器以及 PHP(或者其他语言的) 开发经验。

服务端部署

  1. 修改 index.php 将其中 $APIKEY = null; 修改为 $APIKEY = "yourkey"; 以提升安全性
  2. index.php_lp.php 上传到可以访问的 Web 服务器,我们假设其公网可访问链接为 http://somesite.com/
  3. 在Todo添加输入框输入 :webhook=https://somesite.com/?key=yourkey 并回车以设置 web hook
  4. 再次输入 :who 可以测试是否 work 。提示 It's me 为可以正常工作

修改和添加命令

TimeTodo 客户端在用户输入的 Todo 内容以冒号开头时,会查找本地内置的命令,当命令不存在时,会检查是否设置过 web hook。 如果发现存在 web hook,则会向该 URL POST 两个变量 , cmd 为用户输入的命令、todos 为 TimeTodo 客户端 Todo 列表的 Json 数组。

同时,TimeTodo 客户端会检查该 URL 的返回值。其格式为

{
    code:"0",
    js:"",
    cmd:""
}

其中 code 为 0 表示正常;js 为希望 TimeTodo 客户端执行的 JS 命令、cmd 为希望 TimeTodo 客户端执行的 Electron 命令。

在此基础上,我们可以根据场景进行编程。以下为示范代码:

$ret = [];
$ret['code'] = 0;
$ret['js'] = ''; // 页面 js
$ret['cmd'] = ''; // eletron 命令

$cmd = t(v('cmd')); // TimeTodo 上的命令,包含冒号

// 根据命令来修改返回值相关数据
switch( $cmd )
{
    // 直接返回JS命令
    case ':who':
        $ret['js'] = "alert('It\' me 🤠 ')";
        break;

    // 分析 TODO (会 POST 到 $_REQUEST['todos'] 里边 )
    // 并返回数据
    case ':howmany':
        $todos = json_decode( v('todos') , true );
        $ret['js'] = "alert('你总共有" . count( $todos ) . "个TODO')"; 
        break; 
    
    // 对 TODO 数据进行操作
    // 数据对象为 this.props.store
    // 方法包括:
    // 添加 todo_add( text )
    // 完成 todo_check( id ) // id 可以分析 $_POST['todos'] 取到
    // 未完成 todo_uncheck( id ) 
    // 开始计时 todo_play( id ) 
    // 清除已经完成的TODO todo_clean()
    case ':add':
        $ret['js'] = "this.props.store.todo_add('remote one')"; 
        break;

    // JS 直接操作剪贴板
    case ':rand':
        $ret['js'] = 'window.require("electron").clipboard.writeText("'.uniqid().'");alert("随机密码已复制到剪贴板")';  
        break; 
    
    // 设置面板背景    
    case ':bg':
        $ret['js'] = 'document.querySelector("html").style.backgroundImage = "url(\'https://ws1.sinaimg.cn/large/40dfde6fly1fxy3his1hsj20jq0rsk0q.jpg\')";';  
        break;
    
    // 提示音
    case ':beep':
        $ret['js'] = 'window.require("electron").shell.beep()'; 
        break;

    // 取消顶层浮动
    case ':nofloat':
        $ret['cmd'] = 'win.setAlwaysOnTop(false, "normal", 0);'; 
        break; 
    
    // 开启顶层浮动
    case ':float':
        $ret['cmd'] = 'win.setAlwaysOnTop(true, "floating", 1);'; 
        break;     
    
    // 运行 electron 命令,支持所有的命令
    case ':quit':
        $ret['cmd'] = "app.quit()"; 
        break; 
    
    default:
        // 正则演示 find sort 搜索 PHP 手册
        if( preg_match("/:find\s(.+?)$/i" , $cmd , $out ) )
        {
            $ret['js'] = 'window.require("electron").shell.openExternal("http://www.php.net/manual-lookup.php?pattern=' . $out[1] . '");';
        }
        else
        {
            $ret['js'] = 'alert("输入的命令是' . $cmd . '")';
        }
        

}

// $ret['cmd'] = 'app.quit()';

return send_result( $ret );

More Repositories

1

howto-make-more-money

程序员如何优雅的挣零花钱,2.0版,升级为小书了。Most of this not work outside China , so no English translate
PHP
16,190
star
2

lean-side-bussiness

精益副业:程序员如何优雅地做副业
8,305
star
3

pushdeer

开放源码的无App推送服务,iOS14+扫码即用。亦支持快应用/iOS和Mac客户端、Android客户端、自制设备
C
4,353
star
4

one-person-businesses-methodology

一人公司方法论
3,220
star
5

stack-roadmap

方糖全栈路线图2023,为「从螺丝钉到一人企业」补全技能栈
PHP
3,063
star
6

CookieCloud

CookieCloud是一个和自架服务器同步浏览器Cookie和LocalStorage的小工具,支持端对端加密,可设定同步时间间隔。本仓库包含了插件和服务器端源码。CookieCloud is a small tool for synchronizing browser cookies and LocalStorage with a self-hosted server. It supports end-to-end encryption and allows for setting the synchronization interval. This repository contains both the plugin and the server-side source code
JavaScript
1,581
star
7

checkchan-dist

Check酱:监测网页内容变化,并发送异动到微信。亦支持http status、json和rss监测。配合自架云端,关电脑后也能运行。
JavaScript
1,532
star
8

openai-api-proxy

一行Docker命令部署的 OpenAI/GPT API代理,支持SSE流式返回、腾讯云函数 。Simple proxy for OpenAi api via a one-line docker command
JavaScript
1,450
star
9

openai-gpt-dev-notes-for-cn-developer

如何快速开发一个OpenAI/GPT应用:国内开发者笔记
Shell
1,403
star
10

wecomchan

微信推送服务Server酱的开源替代。通过企业微信向微信推送消息的配置文档、直推函数和可自行搭建的在线服务代码。
Go
1,233
star
11

docker2saas

An open source tool that lets you create a SaaS website from docker images in 10 minutes.
PHP
765
star
12

chatchan-dist

Chat酱独立部署版,docker方案自带代理
Dockerfile
729
star
13

catgate

CatGate is a small crawler framework based on Chrome extension . CatGate是一个基于浏览器插件的数据抓取工具。做成浏览器插件无需模拟登入,能最真实的模仿用户行为和特征。
Vue
673
star
14

TeamToy

企业协同办公工具TeamToy2(多人TODO版)官方Git源
PHP
662
star
15

LazyPHP

轻框架。包含一个前端控制器,20个常用函数和用于页面布局的Layout系统,10分钟即可学会。LP采用BSD开源协议,在代码内保留框架名即可随意商用。
PHP
573
star
16

rsspush

监测RSS变动,并发送最新内容到微信、Webhook 和 Telegram, Discord, Slack, Amazon SNS, Gotify 等数十个消息通道。
499
star
17

telechan

message api for telegram bot 可供多人发送消息的 telegram 机器人 api , 类似server酱的开源实现
TypeScript
414
star
18

not-only-fans

an open source, self-hosted digital content subscription platform like `onlyfans.com` with cryptocurrency payment
HTML
356
star
19

career-guide-for-cs-graduate

计算机系应届生求职指北
316
star
20

LazyPHP4

LazyPHP4 , an API first framework for php developer
PHP
315
star
21

MemberPrism2

open source alternative to memberstack / memberspace , but with both front and backend member-only content protection
PHP
273
star
22

http-t-shirts

Open source http status code T shirt · http状态码系列T恤设计稿
266
star
23

tumblr-like-exporter

Download tumblr photos you liked , or others liked . Or even images in your blog . It supports videos now , see README to enable it
PHP
262
star
24

LazyRest4

基于Web界面的Rest风格API生成器For LazyPHP4
PHP
244
star
25

botchan

基于微信测试号的ChatBot,对接OpenAI API
JavaScript
242
star
26

lianmilite

莲米粒是一个基于PHP+MySQL+微信小程序技术栈的、拥有用户登入、发布、修改、删除和转发信息、以及私信聊天模块的信息流应用。
PHP
233
star
27

deepgpt-dist

DeepGPT,类agentGPT/AutoGPT 工具,支持 api2d / 和自定义 openai key。此为静态网页独立部署版,部署方便
JavaScript
227
star
28

book-by-ai

Generate high-quality books with AI
JavaScript
216
star
29

TeamToy-Pocket

TeamToy是跨平台的团队TODO应用,官网 TeamToy.net。 TeamToyPocket是其移动客户端。本项目采用GPLV2协议,本分支代码用于在新浪移动云上直接打包。如果自行用PhoneGap打包,请将代码中<phonegap></phonegap>换成phonegap.js的路径。
JavaScript
203
star
30

LazyREST

可通过Web配置的REST Server,采用GPLV2授权
PHP
193
star
31

gpt-bat

GPT长文本批处理工具,Batch Processing tools for GPT
JavaScript
184
star
32

LazyAudioBook

将 txt 文件生成语音书。
PHP
167
star
33

flowdeer-dist

可用于深度思考和复杂流程的AI工具
163
star
34

LeanBase

143
star
35

aiapi

A Claude-driven, OpenAI specification-compliant API, free
135
star
36

onlytech-javascript-info

纯粹技术免费课计划·现代JavaScript 教程
112
star
37

windrecorder

JavaScript
103
star
38

rumenqi

从入门到放弃系列周边补全计划
98
star
39

api2d-js

OpenAI/Api2d pure js sdk 无需node后端直接在浏览器中运行,支持SSE流式输出
JavaScript
90
star
40

fangPHP

fangPHP is a docker based development env with php7 mysql redis and livereload
PHP
84
star
41

any2api

A framework( or a tool? ) that turns any website into an API
JavaScript
81
star
42

h2webreader

h2book web reader
JavaScript
78
star
43

awesome-checkchan

Check酱任务分享清单
76
star
44

windmark-practice

采用 windmark 编写的视频的源文件
74
star
45

h2reader-host

方糖小剧场Web阅读器和上传网站
JavaScript
72
star
46

Simple-Weibo

PS: 这个方案有些过时了,建议用新方案 https://github.com/qhm123/tinybo open source phonegap weibo client demo 。想要更多功能的同学自己写嘛,别偷懒哈。
JavaScript
70
star
47

url2pdf

url2pdf docker image based on wkhtmltopdf with Chinese support.
PHP
68
star
48

code-tattoo

语言纹身贴纸图案库
60
star
49

GPT4Company

Gpt4Company is a request forwarder used to prevent Samsung-style leaks. Gpt4Company 是一个用来避免三星式泄密的请求转发器
JavaScript
57
star
50

ffonline

video creating in browser
JavaScript
57
star
51

LazyBoardExt

定时采集数据并发送到指定接口的Chrome扩展机器人🤖
JavaScript
54
star
52

nCoV-push

nCoV疫情实时播报推送脚本。数据基于丁香园。
PHP
53
star
53

Wechat-Wordpress-Search

a wordpress plugin allowed user search blogs in wechat app
PHP
52
star
54

MoDocker

modo动漫私有云(modo.moe)的Docker构建用文件。
PHP
40
star
55

ask-gpt-download

通过GPT向微博账号提问
39
star
56

WindChat

A React Chatbot starter with highly customizable styles can be achieved through TailwindCSS. 可以通过 TailwindCSS 高度定制样式的 React Chatbot starter。
JavaScript
36
star
57

fo-pay

基于加密稳定币 FOUSDT 的 WordPress 付费阅读插件。
PHP
33
star
58

Fangtang-Chrome-Starter-Kit

Starter Kit for chrome extension based on Vue2 and ElementUI
JavaScript
33
star
59

serverchan-demo

Server酱多语言调用实例
Java
31
star
60

vue-starter

JavaScript
27
star
61

fangtangtree

方糖知识树
26
star
62

nowboard

基于SAE Channel服务的实时信息流展板。通过微博帐号登入、可聊天;支持API发布信息,可用于服务器调试信息、错误信息展示。
PHP
26
star
63

TeamToy-Plugins

TeamToy插件目录
PHP
24
star
64

LazyExtKit

a simple chrome extension startkit
JavaScript
24
star
65

github-action-server-chan

TypeScript
23
star
66

MetaToy2

通用命令行和可视化代码生成工具
EJS
19
star
67

WeiboList

微博上活跃的技术帐号整理
19
star
68

easy-starter2

react + mobx + react-router v4 + react-next-i18n starter for create-react-app 2.x
JavaScript
17
star
69

fangtangCV-react-native

react native demo
JavaScript
16
star
70

serverchan-wordpress-comments-notice

Server酱WordPress博客评论微信通知插件
PHP
16
star
71

easy-starter

一个整合了 react 、 react-router v4 和 mobx 的简单起始项目脚手架
JavaScript
15
star
72

LazyBot

一些基于 robo.li 的日常自动化/半自动化脚本
PHP
15
star
73

one-person-businesses-methodology-v2

用AI撰写的一本小书
Shell
14
star
74

teamtoy-mina-demo

一个调用TeamToy API 的微信小程序 Demo
JavaScript
14
star
75

CubismWebSamples-with-lip-sync

TypeScript
14
star
76

fullstack-learnning-map

全栈创业者(fullstack-creator)的知识地图
13
star
77

fangtangCV

PHP
12
star
78

2dstudio-dist

使用 API2D Key 的 Stable Studio,独立部署版
HTML
12
star
79

Aoi

LazyPHP3的看板娘,能帮你自动创建模板,Action和测试。
PHP
12
star
80

xf-tts-sdk

php & node sdk for xunfei tts websocket api
JavaScript
10
star
81

easychen.github.com

8
star
82

tcp

tcp包介绍网站
CSS
8
star
83

autoplay-web-specification

自播放网页规范 specification of autoplay web
7
star
84

imgShare

为文章中的图片添加鼠标浮动时分享到微博的链接。封装自 国内首家互联网人才拍卖网站 JobDeer.com
JavaScript
6
star
85

fangtangGif

方糖动图生成器
6
star
86

telegram-bot-api-proxy

express app for forwarding request to api.telegram.org
JavaScript
4
star
87

GameDemo

DemoGame for FE courses , Just a hosting , not open source project
4
star
88

easychen.github.io

HTML
4
star
89

book-by-ai-demo-book

3
star
90

LitePHP

Simple version of LazyPHP in one file
PHP
3
star
91

wordpress-local-dev-env

3
star
92

serverchan-e2e-demo

Server酱端对端加密函数和DEMO
2
star
93

fangCV

PHP
2
star
94

easychen

2
star
95

cubeslam

Automatically exported from code.google.com/p/cubeslam
JavaScript
2
star
96

TeamToy-Language-Files

translate teamtoy to other languages
PHP
2
star
97

fxd

Flow eXtension Define,它是一个被设计用于工作流(尤其是AI和自动化工作流)扩展的规范。"Flow eXtension Define" is a specification designed for extending workflows, especially AI and automation workflows.
JavaScript
2
star
98

bluesky-wave

Bluesky bulk follow tool
JavaScript
2
star
99

m5dash

Python
1
star
100

2d-ai-chatbot

TypeScript
1
star