Sjo*_*ies 11 wolfram-mathematica stackexchange-api
除非韦纳德先生正在度假,否则很难打败这种看似无处不在的无所不在的现象.我们如何使用Mathematica和StackOverflow API超越他?
Sjo*_*ies 15
实际上很容易.您只需要以下内容.
定义监视任务:
storedTitle = "";
mySOWatchTask =
CreateScheduledTask[
{
lastTitle =
"title" /. ("questions" /.
Import["http://api.stackoverflow.com/1.1/questions?key=\
QEpjCjsXYE6s_kZEkFr4Lw&page=1&pagesize=1&sort=creation&tagged=\
mathematica", "JSON"])[[1]];
If[lastTitle != storedTitle,
storedTitle = lastTitle;
EmitSound[Sound[SoundNote[]]];
MessageDialog["New question: " <> lastTitle]
];
},
60
];
Run Code Online (Sandbox Code Playgroud)
并开始这个:
StartScheduledTask[mySOWatchTask];
Run Code Online (Sandbox Code Playgroud)
停止它:
StopScheduledTask[mySOWatchTask];
Run Code Online (Sandbox Code Playgroud)
看看正在运行的是什么:
ScheduledTasks[] // Shallow
Run Code Online (Sandbox Code Playgroud)
删除任务:
RemoveScheduledTask[mySOWatchTask];
Run Code Online (Sandbox Code Playgroud)
或所有任务:
RemoveScheduledTask[ScheduledTasks[]];
Run Code Online (Sandbox Code Playgroud)
这每分钟轮询SO(最小值不被视为滥用),并且只要新的Mathematica问题到达,就会显示一个对话框并播放声音.

它的美妙之处在于:它使用Mathematica 8,我们都知道Mr.Wizard没有那个(还);-)
请注意,SO API正在被大量缓存,因此可能无法直接响应.我还没有对此进行过广泛的测试.
编辑
请注意,上面使用的密钥(app-id)仅供这个小型Mathematica应用程序使用.如果您需要一个不同的应用程序,您可以在这里快速,轻松地完成一个程序.我花了不到一分钟.
Bre*_*ion 15
这是Sjoerd解决方案的变体.
主要区别在于使用停靠单元格而不是弹出对话框.单元格具有指向新帖子的链接,以及将停靠的单元格清除为先前状态的按钮.
另一个区别是使用问题ID而不是标题来确定新帖子.我知道标题有时会被编辑,因此在这种情况下,这会触发新帖子.
storedTitle = "";
storedID = 0;
mySOWatchTask =
CreateScheduledTask[{lastTitle,
lastID} = {"title",
"question_id"} /. ("questions" /.
Import["http://api.stackoverflow.com/1.1/questions?key= \
QEpjCjsXYE6s_kZEkFr4Lw&page=1&pagesize=1&sort=creation&\
tagged= mathematica", "JSON"])[[1]];
If[lastID != storedID,
storedTitle = lastTitle;
storedID = lastID;
SetOptions[$FrontEndSession,
DockedCells ->
Cell[BoxData[
ToBoxes[Style[
With[{dock = Options[$FrontEndSession, DockedCells]},
Grid[{{Button[Style["\[CircleTimes]", 16],
SetOptions[$FrontEndSession, dock],
Appearance -> None], "New StackOverflow question: ",
Hyperlink[lastTitle,
"http://stackoverflow.com/questions/" <>
ToString[lastID]]}},
Alignment -> {{Left, Left, Left}},
ItemSize -> {{2, 14, Scaled[0.7]}}]],
FontFamily -> "Times"]]], "DockedCell",
Background -> Orange]]; EmitSound[Sound[SoundNote[]]]];, 60];
Run Code Online (Sandbox Code Playgroud)

| 归档时间: |
|
| 查看次数: |
609 次 |
| 最近记录: |