Exemple #1
0
def get_list_of_messages(user_id: int, offset: int = 0,
                         count: int = 20) -> List[Message]:
    messages = messages_get_history(user_id, offset, count)
    messages_list = []
    for j in range(len(messages)):
        messages_list.append(Message(**messages[j]))
    return messages_list
Exemple #2
0
def count_dates_from_messages(id: int,
                              offset: int = 0,
                              count: int = 200) -> Tuple:
    messages = messages_get_history(id, offset=offset, count=count)
    for message in messages:
        date = datetime.fromtimestamp(message.date).strftime("%Y-%m-%d")
        try:
            Frequencies[Dates.index(date)] += 1
        except:
            Dates.append(date)
            Frequencies.append(1)

    Dates.reverse()
    Frequencies.reverse()
    message_count = (Dates, Frequencies)
    return message_count
Exemple #3
0
def count_dates_from_messages(id: int, offset: int=0, count: int=200) -> Tuple:
    """ Получить список дат и их частот
    :param id: id собеседника
    :param count: количество сообщений
    :param offset: сдвиг по сообщеениям
    """
    messages = messages_get_history(id, offset=offset, count=count)
    for message in messages:
        date = datetime.fromtimestamp(message.date).strftime("%Y-%m-%d")
        try:
            Frequencies[Dates.index(date)] += 1
        except:
            Dates.append(date)
            Frequencies.append(1)

    Dates.reverse()
    Frequencies.reverse()
    message_count = (Dates, Frequencies)
    return message_count
Exemple #4
0
                                  api_key=config['plotly_api_key'])


def fromtimestamp(ts: int) -> datetime.date:
    return datetime.datetime.fromtimestamp(ts).date()


def count_dates_from_messages(messages: List[Message]) -> list:
    dates = []
    for message in messages:
        dates.append(message['date'])
    for i in range(len(dates)):
        dates[i] = datetime.datetime.fromtimestamp(
            dates[i]).strftime('%Y-%m-%d')
    if dates:
        return dates


def plotly_messages_freq(dates: list) -> None:
    x = Counter(dates)
    y = list(x.keys())
    z = list(x.values())
    data = [go.Scatter(y=y, z=z)]
    py.iplot(data)


if __name__ == '__main__':
    plotly_messages_freq(
        count_dates_from_messages(messages_get_history(user_id)))
    user_id = int(input('Enter id: '))
Exemple #5
0
    :param messages: список сообщений
    """
    dates = []
    for message in messages:
        dates.append(message['date'])
    for i in range(len(dates)):
        dates[i] = datetime.datetime.fromtimestamp(
            dates[i]).strftime("%Y-%m-%d")
    if dates:
        return dates


def plotly_messages_freq(dates: list) -> None:
    """ Построение графика с помощью Plot.ly

    :param date: список дат
    :param freq: число сообщений в соответствующую дату
    """
    s = Counter(dates)
    xCoor = list(s.keys())
    yCoor = list(s.values())
    stats = [go.Scatter(x=xCoor, y=yCoor)]
    py.plot(stats)


if __name__ == '__main__':
    n = count_dates_from_messages(
        messages_get_history(config.VK_CONFIG['friend_id']))
    plotly_messages_freq(n)
Exemple #6
0
    new_dates = [message['date'] for message in messages]
    new_dates = sorted(new_dates)

    for i in range(len(new_dates)):
        date = datetime.utcfromtimestamp(new_dates[i]).strftime("%Y-%m-%d")
        flag.append(date)

    flag = Counter(flag)  # flag includes dates and frequency of each date

    for date in flag:
        dates.append(date)
        frequencies.append(flag[date])

    return dates, frequencies


def plotly_messages_freq(dates: Dates, freq: Frequencies) -> None:
    """ Построение графика с помощью Plot.ly

    :param date: список дат
    :param freq: число сообщений в соответствующую дату
    """
    data = [go.Scatter(x=dates, y=freq)]
    py.plot(data)


if __name__ == '__main__':
    flag = messages_get_history(user_id=73415922)
    count_dates_from_messages(flag)
    plotly_messages_freq(dates=dates, freq=frequencies)
Exemple #7
0
def count_dates_from_messages(
        messages: List[Message]) -> Tuple[List[datetime.date], List[int]]:
    """ Получить список дат и их частот
    :param messages: список сообщений
    """
    dates = []
    cnt = Counter()
    for message in messages:
        message['date'] = datetime.utcfromtimestamp(
            message['date']).strftime("%Y-%m-%d")
        dates.append(message['date'])
    for val in dates:
        cnt[val] += 1
    return list(cnt.keys()), list(cnt.values())


def plotly_messages_freq(dates: List[datetime.date], freq: List[int]) -> None:
    """ Построение графика с помощью Plot.ly
    :param dates:
    :param dates: список дат
    :param freq: число сообщений в соответствующую дату
    """
    data = [go.Scatter(x=dates, y=freq)]
    py.plot(data)


if __name__ == '__main__':
    messages = messages_get_history(172030641, offset=0, count=200)
    x, y = count_dates_from_messages(messages)
    plotly_messages_freq(x, y)
Exemple #8
0
    """ Получить список дат и их частот
    :param messages: список сообщений
    """
    date = []
    cnt = Counter()

    for message in messages:
        message['date'] = datetime.utcfromtimestamp(
            message['date']).strftime("%Y-%m-%d")
        date.append(message['date'])

    for val in date:
        cnt[val] += 1

    return list(cnt.keys()), list(cnt.values())


def plotly_messages_freq(dates: List[datetime.date], freq: List[int]) -> None:
    """ Построение графика с помощью Plot.ly
    :param dates:
    :param date: список дат
    :param freq: число сообщений в соответствующую дату
    """
    data = [go.Scatter(x=dates, y=freq)]
    py.plot(data)


friend_id = get_friends(config.VK_CONFIG['user_id'], '')[14]
dates, freq = count_dates_from_messages(
    messages_get_history(friend_id, count=2000))
plotly_messages_freq(dates, freq)
Exemple #9
0
        messages: List[Message]) -> Tuple[Dates, Frequencies]:
    """ Получить список дат и их частот
    :param messages: список сообщений
    """
    date = []
    cnt = Counter()

    for message in messages:
        message.date = datetime.utcfromtimestamp(
            message.date).strftime("%Y-%m-%d")
        date.append(message.date)

    for val in date:
        cnt[val] += 1

    return list(cnt.keys()), list(cnt.values())


def plotly_messages_freq(dates: Dates, freq: Frequencies) -> None:
    """ Построение графика с помощью Plot.ly
    :param date: список дат
    :param freq: число сообщений в соответствующую дату
    """
    data = [go.Scatter(x=dates, y=freq)]
    py.plot(data)


if __name__ == '__main__':
    a = count_dates_from_messages(messages_get_history(82770248))
    plotly_messages_freq(a[0], a[1])
Exemple #10
0

def count_dates_from_messages(messages: List[Message]) -> Tuple[Dates, Frequencies]:
    """ Получить список дат и их частот
    :param messages: список сообщений
    """
    dates = []
    frequencies = []

    for message in messages:
        message.date = fromtimestamp(message.date)
        dates.append(message.date)
        frequency = 0
        for object in messages:
            if object.date == message.date:
                frequency += 1
        frequencies.append(frequency)
    return dates, frequencies


def plotly_messages_freq(dates: Dates, freq: Frequencies) -> None:
    """ Построение графика с помощью Plot.ly
    :param date: список дат
    :param freq: число сообщений в соответствующую дату
    """
    data = [plotly.graph_objs.Scatter(x=dates, y=freq)]
    plotly.plotly.plot(data)


dates_freq = count_dates_from_messages(messages_get_history(53369046, 0, 300))
plotly_messages_freq(dates_freq[0], dates_freq[1])
Exemple #11
0
from api import messages_get_history
from api_models import Message
from messages import count_dates_from_messages, plotly_messages_freq

messages = messages_get_history(505540783, offset=10, count=50)
messages_list = [Message(**mes) for mes in messages]
dates_freqs = count_dates_from_messages(messages_list)
plotly_messages_freq(dates_freqs[0], dates_freqs[1])
Exemple #12
0
    # для сообщений
    for message in messages:
        # запоминаем дату сообщения
        message['date'] = datetime.\
            utcfromtimestamp(message['date']).strftime("%Y-%m-%d")
        # добавляем в список дату
        dates.append(message['date'])
    # для вал в датах
    for val in dates:
        # счетчик каждого отдельного вала +1
        cnt[val] += 1
    # вернуть список дат и кол-во сообщений
    return list(cnt.keys()), list(cnt.values())


def plotly_messages_freq(dates: List[datetime.date], freq: List[int]) -> None:
    """ Построение графика с помощью Plot.ly
    :param dates:
    :param dates: список дат
    :param freq: число сообщений в соответствующую дату
    """
    data = [go.Scatter(x=dates, y=freq)]
    py.plot(data)


if __name__ == '__main__':
    friend_id = int(config.VK_CONFIG['user_id'])
    messages = messages_get_history(friend_id, offset=0, count=200)
    x, y = count_dates_from_messages(messages)
    plotly_messages_freq(x, y)
Exemple #13
0

def count_dates_from_messages(
        messages: List[Message]) -> Tuple[Dates, Frequencies]:
    """ Получить список дат и их частот

    :param messages: список сообщений
    """
    result = defaultdict(lambda: 0)
    for message in messages:
        result[fromtimestamp(message.date)] += 1
    return list(result.keys()), list(result.values())


def plotly_messages_freq(dates: Dates, freq: Frequencies) -> None:
    """ Построение графика с помощью Plot.ly

    :param dates: список дат
    :param freq: число сообщений в соответствующую дату
    """
    fig = go.Figure()
    fig.add_trace(
        go.Scatter(x=dates, y=freq, mode='lines+markers',
                   name='lines+markers'))
    fig.show()


if __name__ == '__main__':
    msgs = messages_get_history(223712375, count=401)
    plotly_messages_freq(*count_dates_from_messages(msgs))
Exemple #14
0
from age import age_predict
from api import messages_get_history, get_friends
from messages import count_dates_from_messages, plotly_messages_freq
from api_models import Message
from network import get_network, plot_graph

print(age_predict(155393609))
history = messages_get_history(155393609, count=300)
mlist = [Message(**mes) for mes in history]
dates = count_dates_from_messages(mlist)
plotly_messages_freq(dates[0], dates[1])

friends = get_friends(155393609, fields='bdate')['response']['items']
ids = []
names = []
for friend in friends:
    ids.append(friend['id'])
    names.append(friend['first_name'] + ' ' + friend['last_name'])
edges = get_network(ids)
plot_graph(edges, names)
Exemple #15
0
    return datetime.fromtimestamp(ts).date()


def count_dates_from_messages(messages: List[Message]) -> Tuple[List[datetime.date], List[int]]:
    """ Получить список дат и их частот
    :param messages: список сообщений
    """
    dates = []
    cnt = Counter()
    for message in messages:
        message['date'] = datetime.utcfromtimestamp(message['date']).strftime("%Y-%m-%d")
        dates.append(message['date'])
    for val in dates:
        cnt[val] += 1
    return list(cnt.keys()), list(cnt.values())


def plotly_messages_freq(dates: List[datetime.date], freq: List[int]) -> None:
    """ Построение графика с помощью Plot.ly
    :param dates:
    :param date: список дат
    :param freq: число сообщений в соответствующую дату
    """
    data = [go.Scatter(x=dates, y=freq)]
    py.plot(data)

if __name__ == '__main__': 
    messages = messages_get_history(203977390, offset=0, count=200) 
    x, y = count_dates_from_messages(messages) 
    plotly_messages_freq(x, y)
    frequency = Counter()
    for message in messages:
        message_date = fromtimestamp(message.date)
        frequency[message_date] += 1

    for date in frequency:
        m_dates.append(date)
        m_counts.append(frequency[date])

    return m_dates, m_counts


def plotly_messages_freq(dates: Dates, freq: Frequencies) -> None:
    """ Create plotly chart

    :param date: list of dates
    :param freq: list of messages numbers at certain dates
    """

    plotly.tools.set_credentials_file(
        username=config.PLOTLY_CONFIG['username'],
        api_key=config.PLOTLY_CONFIG['api_key'])
    data = [go.Scatter(x=dates, y=freq)]
    py.plot(data)


if __name__ == '__main__':
    messages_list = messages_get_history(364936790, 0, 1000)
    messages_stat = count_dates_from_messages(messages_list)
    plotly_messages_freq(messages_stat[0], messages_stat[1])
Exemple #17
0
    :param messages: список сообщений
    """
    msgl = [fromtimestamp(c.get('date')) for c in messages]
    num = Counter(msgl)
    dates = []
    freq = []

    for date in num:
        dates.append(date)

        freq.append(num[date])

    return dates, freq


def plotly_messages_freq(dates: Dates, freq: Frequencies) -> None:
    """ Построение графика с помощью Plot.ly

    :param date: список дат
    :param freq: число сообщений в соответствующую дату
    """
    data = [go.Scatter(x=dates, y=freq)]
    py.iplot(data)


if __name__ == '__main__':
    messages = messages_get_history(57902269, offset=0, count=200)
    x, y = count_dates_from_messages(messages)
    plotly_messages_freq(x, y)

def count_dates_from_messages(messages: List[Message]):
    """ Получить список дат и их частот
    :param messages: список сообщений
    """
    dates = []
    cnt = Counter()
    for message in messages:
        message['date'] = datetime.utcfromtimestamp(message['date']).strftime("%Y-%m-%d")
        dates.append(message['date'])
    for val in dates:
        cnt[val] += 1
    return list(cnt.keys()), list(cnt.values())


def plotly_messages_freq(dates: List[datetime.date], freq: List[int]) -> None:
    """ Построение графика с помощью Plot.ly
    :param dates:
    :param date: список дат
    :param freq: число сообщений в соответствующую дату
    """
    data = [go.Scatter(x=dates, y=freq)]
    py.plot(data)

if __name__ == '__main__':
    friend_id = get_friends(config.VK_CONFIG['user_id'], '')[7]
    dates, freq = count_dates_from_messages(messages_get_history(friend_id))
    plotly_messages_freq(dates, freq)