gitment icon indicating copy to clipboard operation
gitment copied to clipboard

评论能否按照时间倒序排列?

Open AngusFu opened this issue 7 years ago • 12 comments

首先必须点赞!

但是目前最新评论貌似显示在最后,能否将最新的放在前面呢 这样似乎更科学。(当然,因为 github API 的限制也能理解哈)

AngusFu avatar Apr 08 '17 15:04 AngusFu

虽然 GitHub API 里的 issue comments 不能逆序传,但是还是可以实现。

imsun avatar Apr 09 '17 00:04 imsun

for循环从后向前就可以了吧.

ystyle avatar Apr 10 '17 02:04 ystyle

我建议, 初始化时可以指定评论框在上面还是下边显示.

下边太多时翻得比较麻烦

ystyle avatar Apr 10 '17 02:04 ystyle

@ystyle 逆序还涉及到分页什么的。

评论框那个我也打算加个参数。

imsun avatar Apr 10 '17 03:04 imsun

@imsun

sort string What to sort results by. Can be either created, updated, comments. Default: created direction string The direction of the sort. Can be either asc or desc. Default: desc

配合这两个参数就可以了

ystyle avatar Apr 10 '17 03:04 ystyle

@ystyle 那个是 issues 的,不是 comments 的。

imsun avatar Apr 10 '17 03:04 imsun

@imsun

哦看错了, 那还真有点麻烦. 看起来只能前端分页了. 博客的评论应该不会太多吧....

ystyle avatar Apr 10 '17 03:04 ystyle

如果能将最新的放最前面确实更科学一点,期待能加一个配置选项。

mzlogin avatar Sep 05 '17 02:09 mzlogin

我这边昨天折腾出来个算法,,,虽然丑了点但是可以用。 将 倒序 的page,per_page ,转换成正序的,以及偏移。 这样可以实现未登录情况下,倒序获取 comments。

需要知道数据的总数量,也就是要额外请求一哈 issue 接口获取 comment 总数量。 大佬你代码里面的get请求是没有加时间戳的,这样就有缓存拉。虽然速度快,但是好多数据获取经常不是最新的 😂😂


/**
 * 根据 第几页、每页数量、总数量 计算倒序时候应该进行查询的 page、per_page、offset
 *
 * @export
 * @param {number} page 第几页
 * @param {number} per_page 每页数量
 * @param {number} count 总数量
 * @returns {page:number,per_page:number,offset:number}
 */
export function reversePageMatch(page, per_page, count) {

    let hash = [];  // 存储所有可能

    let to = count - (page - 1) * per_page;  // 目标结束位置
    let from = to - per_page + 1;  // 目标起始位置

    // i 是转换后每页数量
    for (let i = 100; i >= per_page; i--) {
        if (i > from) continue;

        let ifBetween = false;
        let k = 1;
        // 无论第几页,最后一个元素不能在 from 和 to 之间
        // k 是第几页
        for (; k < count / per_page; k++) {
            let temp = i * k; // 该分法在k页时,最后一个元素的位置
            if (temp >= from && temp < to) {
                ifBetween = true;
                break;
            }
            if (temp >= to) {
                break;
            }
        }

        if (!ifBetween) { // 该方法符合期望
            hash.push({
                page: k,
                per_page: i,
                offset: from - ((k - 1) * i + 1)
            });
        }
    }

    hash.sort((a, b) => {
        return a.per_page - b.per_page;
    });

    // 一般在倒序的最后一页
    if (!hash.length) {
        hash.push({
            page: 1,
            per_page: to,
            offset: from - 1
        });
    }

    hash[0].offset < 0 && (hash[0].offset = 0);

    return hash[0];
}


shalldie avatar May 25 '18 02:05 shalldie

用笨办法实现了倒序: https://yajunw.com/2019/09/11/Gitment%E5%AE%9A%E5%88%B6/

yajw avatar Sep 11 '19 14:09 yajw

https://github.com/imsun/gitment/issues/1

sariabiha avatar Feb 11 '22 14:02 sariabiha

https://advance-esthetic.us/rf-facial-machines

sariabiha avatar Feb 11 '22 14:02 sariabiha