Code Monkey home page Code Monkey logo

todosync's Introduction

程序简介

基于 GitHub Actions 的定时任务(每小时运行一次同步),将 Canvas LMS 的作业、测验、公告、讨论同步到 Microsoft Todo/滴答清单(目前仅适配上海交通大学 Canvas 系统,理论上所有 Canvas LMS 都能用)

使用方法

特别感谢

说在最后

如果觉得程序好用的话,请点亮右上角的 Star 哦~

以及,欢迎Bug Report & Pull Request

todosync's People

Contributors

1357310795 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

todosync's Issues

使用 external tool 提交的作业会导致同步报错

昨晚 23:59 我提交了一个使用 external tool (turnitin) 提交的作业,从那一个小时开始同步就一直失败,查阅 Actions log 发现如下报错信息,似乎是因为获取作业提交信息失败:
image

作业提交界面:
image

Unexpected character encountered while parsing value

你好!
我在根据部署文档操作完成后无法同步。进入action后发现在run环节失败
提示:Unexpected character encountered while parsing value然后无法认证canvas
似乎与UTF-8有关,这超出了我的能力。
希望得到帮助!
image

run过程报错

image
按照要求执行了所有过程,请问这种情况应该怎么处理呢,谢谢!

C++ 作业和测验报错

https://github.com/GaisaiYuno/TodoSync/actions/runs/3072228685/jobs/4963575352#step:7:97

处理课程 程序设计**与方法(C++) 测验
System.Exception: Unexpected character encountered while parsing value: {. Path '[3].lock_info.context_module', line 1, position 6[40](https://github.com/GaisaiYuno/TodoSync/actions/runs/3072228685/jobs/4963575352#step:7:41)3.
   at TodoSynchronizer.Core.Services.CanvasService.GetAllPageResult[T](String url, Dictionary`2 query) in /home/runner/work/TodoSync/TodoSync/TodoSynchronizer.Core/Services/CanvasService.cs:line 214
   at TodoSynchronizer.Core.Services.CanvasService.ListAssignments(String course_id) in /home/runner/work/TodoSync/TodoSync/TodoSynchronizer.Core/Services/CanvasService.cs:line 75
   at TodoSynchronizer.Core.Services.SyncService.ProcessQuizes(String message_prefix, Course course, TodoTaskList taskList) in /home/runner/work/TodoSync/TodoSync/TodoSynchronizer.Core/Services/SyncService.cs:line 455
处理课程 程序设计**与方法(C++) 作业
System.Exception: Unexpected character encountered while parsing value: {. Path '[3].lock_info.context_module', line 1, position 6403.
   at TodoSynchronizer.Core.Services.CanvasService.GetAllPageResult[T](String url, Dictionary`2 query) in /home/runner/work/TodoSync/TodoSync/TodoSynchronizer.Core/Services/CanvasService.cs:line 214
   at TodoSynchronizer.Core.Services.CanvasService.ListAssignments(String course_id) in /home/runner/work/TodoSync/TodoSync/TodoSynchronizer.Core/Services/CanvasService.cs:line 75
   at TodoSynchronizer.Core.Services.SyncService.ProcessAssignments(String message_prefix, Course course, TodoTaskList taskList) in /home/runner/work/TodoSync/TodoSync/TodoSynchronizer.Core/Services/SyncService.cs:line [24](https://github.com/GaisaiYuno/TodoSync/actions/runs/3072228685/jobs/4963575352#step:7:25)5

Run failed,但是同步成功

image

rt,所有项目都已经成功同步到 Microsoft Todo 了 (checked),但是显示 run failed exit code 255,并且接受邮件 spam

请问有什么解决办法吗

Graph认证失败

按照文档完成了token的设置,但是graph认证失败

Run ./TodoSynchronizer.CLI/bin/Release/net6.0/TodoSynchronizer.CLI -canvastoken *** -graphtokenfile graphtoken.asc -configfile config.yaml -graphtokenkey ***
TodoSynchronizer v0.1 beta
Canvas 认证成功
Graph 认证失败!
System.Security.Cryptography.CryptographicException: Padding is invalid and cannot be removed.
   at Internal.Cryptography.UniversalCryptoDecryptor.GetPaddingLength(ReadOnlySpan`1 block)
   at Internal.Cryptography.UniversalCryptoDecryptor.UncheckedTransformFinalBlock(ReadOnlySpan`1 inputBuffer, Span`1 outputBuffer)
   at Internal.Cryptography.UniversalCryptoDecryptor.UncheckedTransformFinalBlock(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount)
   at Internal.Cryptography.UniversalCryptoTransform.TransformFinalBlock(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount)
   at System.Security.Cryptography.CryptoStream.ReadAsyncCore(Memory`1 buffer, CancellationToken cancellationToken, Boolean useAsync)
   at System.Security.Cryptography.CryptoStream.Read(Byte[] buffer, Int32 offset, Int32 count)
   at System.IO.StreamReader.ReadBuffer()
   at System.IO.StreamReader.ReadToEnd()
   at TodoSynchronizer.CLI.AesHelper.Decrypt(Byte[] rgbKey, Byte[] rgbIV, Stream cipherStream) in /home/runner/work/TodoSync/TodoSync/TodoSynchronizer.CLI/AesHelper.cs:line 215
   at TodoSynchronizer.CLI.AesHelper.Decrypt(Byte[] rgbKey, Byte[] rgbIV, Byte[] cipherBuffer) in /home/runner/work/TodoSync/TodoSync/TodoSynchronizer.CLI/AesHelper.cs:line 159
   at TodoSynchronizer.CLI.AesHelper.Decrypt(String key, String IV, String cipherText) in /home/runner/work/TodoSync/TodoSync/TodoSynchronizer.CLI/AesHelper.cs:line 10[7](https://github.com/hzyangjc/TodoSync/actions/runs/3112225422/jobs/5045451872#step:7:8)
   at TodoSynchronizer.CLI.Program.Main(String[] args) in /home/runner/work/TodoSync/TodoSync/TodoSynchronizer.CLI/Program.cs:line 62
Error: Process completed with exit code 255.

【建议】可供使用的截止时间/截止时间

canvas
如图,某课程canvas的截止日期是10月7日,补交的截止日期是10月9日
todo
而同步到todo后,现实的是可供使用的截止时间(补交截止时间),而不是截止时间(作业正常提交截止时间)
感觉显示due_at的时间要比显示lock_at的时间要合理一些🤣

特殊期间故障

canvas 只能挂校内vpn使用,是否有方法如给项目加入vpn等?

如何自动同步

image 运行记录都是几个小时前手动运行的,请问如何自动定时运行?

Run 失败了

您好,今天电脑启动后自动运行一直失败,之前都没问题,报错如下:
image

已经重设 Canvas 令牌并且输入到 Secrets,还是这个问题。

请问有什么解决方法?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.