Giter Club home page Giter Club logo

learn-helper's Introduction

Learn Helper

GitHub Action Build GitHub release Chrome Web Store version Chrome Web Store users Chrome Web Store rating

A browser extension for Web Learning of Tsinghua University.

Authors & Maintainers

  • AsakuraMizu
    • current maintainer
    • developer from v4.6.0
  • Harry-Chen
    • current maintainer
    • developer of v4.0.0 - v4.5.1
  • xxr3376
    • original author
    • developer till v3.3.1

Install

Chrome Store, Self-hosted Firefox Add-on, Edge Addons

Or you can install the unpacked version from releases.

License

This project is licensed under the terms of MIT License from version 4.0.3 EXCLUDING any of the following conditions:

  • You are working / have worked for Informatization Office or Information Technology Center of Tsinghua University.
  • Your project is funded or supported in any way by an affiliate of Tsinghua University or any other institution associated with Tsinghua University.

If any of these criteria is met, any use of code, without explicit authorization from the authors, from this project will be considered as infringement of copyright. The word ‘use’ may refer to making copies of, modifying, redistributing of the source code or derivatives (such as browser extension) of this project, whether or not for commercial use. However you can still install and run the browser extension released by the author without being constrained by this exception.

版权说明

本项目从 4.0.3 版本起,依照 MIT License 开源,但 不包含下列任意情况

  • 您过去或者目前为清华大学信息化工作办公室或信息化技术中心工作;
  • 您的项目受到清华大学的下属机构或其他任何与清华大学有关的机构的任何形式的资助或支持。

如果上述任意条件成立,任何未经授权的对本项目中代码的使用将会被认为是侵权。上文中的“使用”包括对项目的源代码或衍生品(如浏览器插件)制作拷贝、修改、重分发,无论是否用作商业用途。但安装并运行作者发布的浏览器插件的行为不受此例外约束。

Features

  • provide a Evernote-like materialized UI
  • collect all data of Web Learning
    • Homework
    • Notification
    • File
    • Discussion
    • Question
  • provide new message reminder and highlight messages
  • provide a Priority Inbox like Gmail
  • provide a off-line mode, cache all message that you have already read

Build

Learn Helper is built using yarn:

yarn --frozen-lockfile
yarn build:chrome # for chrome build
yarn build:firefox # for firefox build

The compiled Chrome/Firefox plugin is in dist/ (unpacked).

Development

yarn dev
# in another terminal window
yarn serve:chrome

Due to technical restrictions, dev mode works only for chrome.

Auto login

Copy .env.development to .env.development.local and fill in your username & password to login automatically on start. (development mode only)

Revision History

See CHANGELOG.md.

learn-helper's People

Contributors

asakuramizu avatar brian14708 avatar chillcicada avatar circuitcoder avatar dependabot[bot] avatar ethkuil avatar gjz010 avatar harry-chen avatar jiegec avatar konano avatar starrah avatar syimyuzya avatar wuqiling97 avatar xxr3376 avatar yht1995 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  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

learn-helper's Issues

File栏CSS

除了目前已经使用的颜色之外,文件还可以用神马theme么?如果不够可以考虑把橙色改过来。

文件图标。

无法下载课程公告中的文件

_20190223194142
当打开课程公告,并下载课程公告中的文件时,会显示错误“找不到您的文件,该文件可能已被移至别处或遭到删除。”

支持仅显示未读项目

考虑在 CardList 上加一个开关,仅显示未读项目。
同时也有人指出需要一个不带 priority 的收件箱,考虑是否实现

对助教界面的支持?

(这是一个Feature Request,我也没考虑好最佳的实现方式…)

使用Learn Helper这么多年来一直很顺畅,很感谢各位作者的维护;直到毕业前最后一个学期,我才解锁了网络学堂的助教功能。这时再打开Learn Helper,会照常渲染学生视角,貌似是因为网络学堂本身有/lesson/teacher//lesson/student/两种界面,而助教/老师用后者打开也会渲染成学生界面。

介于在主页中会出现”需要赶的作业“和”等大家提交完之后再开始改的作业“的deadline一起显示的情况,我想到以下几种可能的优化:

  • 自动在隐藏设置中隐藏所有非学生身份的课程的提醒?
  • 照常显示,只是左侧课程链接的URL修改成学堂的各个教师视角页面;
  • 照常显示,设计一下相关的提醒,例如DDL在日期之前是灰色、日期之后变成绿色,新上传文件也不再出现提醒etc.

提出这个Issue仅供抛砖引玉~我作为码农很乐意贡献相应的代码,可惜毕业后很快也要失去学堂访问权限了…

重复打开时新标签数会指数上涨

正常情况下点击插件相应按钮chrome会打开一个新标签来运行插件,但是当我已经打开一个learnhelp时,再点几次按钮,会依次出现2、4、8、16个新标签,虽然也无伤大雅,甚至不知道算不算bug,不过要是是bug的话还是希望修复一下

Firefox Support Needed

看见你们的工作,真心觉得很赞,身为firefox的重度用户,也想体验到你们的杰作,所以希望早日添加支持。

渲染作业详情时发生错误

homework 的 description 可能为空,即使是已经提交的,submitTime 也可能为空(老师代交)

上述两个问题都会导致 undefined 访问,从而导致 UI 崩溃

添加旁听学生账户支持

之前本科在清华学生的时候,就一值使用这个插件,非常棒。
目前在某研究所读研,研一的课程都在清华进修,使用旁听生的网络学堂帐号无法登录这个插件。
希望能够解决这个问题。
PS:如果需要旁听生的帐号进行调试,可以单独联系我。

管理忽略项时发生错误

从左边栏进入管理忽略项的时候可能崩溃

Cannot read property 'id' of undefined

怀疑原因是已经配置了忽略项的课程被退课导致

迁移到网络学堂 2018 版

下学期开始网络学堂会彻底放弃 2001 和 2005 版,使用新的 2018 版。这一版本比以前友好之处在于几乎所有内容(课程信息/公告/作业等)都有相应的 JSON API,不用去 Parse DOM 了。

虽然看起来项目的 codebase 的确有些不好下手,但是感觉交互逻辑和 UI 非常好。现在已经有现成的一些库,比如 https://github.com/jiegec/thulib 。我打算在此基础上重写一下这个项目的后端部分。

不知道作者是否有什么建议?

Feature Request: 单击文件卡片的时候不直接下载

  • 一些课程文件有简介,这个简介只能在文件卡片底部显示,一般显示不全。
  • 另外单击文件卡片就会直接下载文件,这个feature从3.x.x其实就有点想吐槽,有的时候点一个文件真的不是为了下载它而只是为了清未读标记而已...

综上,是否能提供单击文件不直接下载,而是在右边显示简介的feature
也可以为这个功能引入一个开关

“在新窗口中打开”无法显示课程公告

image

对于使用旧版网络学堂的课程,在上图当中点击“在新窗口中打开”后,弹出的标签页当中没法显示课程公告。

原因:弹出网页使用的是https协议,但是课程公告是使用http加载的,而这个行为被chrome阻止了。

解决方案:将const.js当中的window.URL_CONST['course_page']字符串的'https'改为'http'

“课程公告”与网络学堂同步未读状态

当前Learn Helper内公告的已读/未读属性与学堂的记录不会双向同步。

有人(如某林老师每周)编辑公告后重新设置其为未读;通过这种方式发布的消息不会被Learn Helper重新处理。尽管手动刷新可以获取公告内容,但该公告不会出现在“新鲜事”中。

Add support for learn v2

New version of learn website is located at http://learn.cic.tsinghua.edu.cn/. It is rumored that this website has a set of standard API for developers (URLunknown).

As of Feb 2014, as said by one teacher using it, one course can only use either the new version website or the old one. I.e., the data on two websites are completely separated.

Please consider adding data fetching script for new website.
Also, during the migration period, some course will operate on both site. It's necessary to distinguish and merge the items appropriately.

Since the new website is still in beta, I personally don't recommend working intensively for it now; however, all courses will eventually migrate everything onto it, and the Learn-Helper should work for it sooner or later.

建议:三栏的滚动条分别滚动

目前我这里是第一、二栏是同时滚动的,这样子导致切换课程,查看公告,需要来回的上下滚动。
(Firefox Add-ons 版,4.0.3)
谢谢作者~

密码加密

考虑把localStorage里面的密码还是SHA-1之类的一下吧,避免过于简单的获取密码。

snippet layout suggestion

ScreenClip 1

课程名是重要信息,重要程度与通知标题相当,是否可以考虑提到上面去?

这样看起来真的很难受……

Feature Request: 去除课程公告内的空行

有很多老师在填写课程公告的时候会加入大量空行,导致 Learn Helper 中公告内容显示观感比较差,希望能去除空行(包括内容只有 whitespace 的行)

PS:貌似大部分空行来自浏览器给 <p> 增加的样式

dist目录文件缺失

我没理解错的话,dist文件内容理应和release内容一致,但是看上去似乎缺少了background.jsindex.js,导致试图直接clone项目从dist导入添加插件的话会提示文件缺失

关于文件下载

觉得每次下载然后选择目录很麻烦,希望增加直接下载到已设置根目录下相应子目录的功能

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.